aide sur des requêtes ACCESS

patrice084

Best Member
bithia5 link=topic=6924.msg70882#msg70882 date=1132854396 a dit:
merci pour ces bons conseils.
bon je me vais me faire t...... LOL
ce que je n'arrive pas à comprendre, c'est comment créer ma lettre avec les champs car je dois choisir une des 2 tables, non? je n'ai pas toutes les informations sur une ou l'autre table. :pascompris;
je crois que je n'ai pas bien saisi..... :blush:

La lettre doit être faite à partir de la requête qui permet de sélectionner les enfants retenus pour la fêtes de noel. Donc vous créez la liaisons à partir de la requête.
 

patrice084

Best Member
lolye95 link=topic=6924.msg70818#msg70818 date=1132848813 a dit:
patrice etes vous la ???? j'ai un soucis et je voulais savoir si vous comprenez je n'arrive pas a faire ma relation entre mes tables :cry:

Vous ne pouvez pas faire le lien sur le champ référence. Même si ces deux champs sont de même nature, ils n'identifient pas la même chose. L'un permet de trouver des parents et l'autres des élèves. Ils ne peuvent donc pas être mis en relation.

La table enfant est incomplète. Vous devez y ajouter un champ de type numérique : No_parent et c'est ce champ qui sera en relation avec le champ référence de la table parent.
 

lolye95

New Member
j'enlev donc les champs reference il ne serv a rien???? dans les deux tabl???
 

patrice084

Best Member
lolye95 link=topic=6924.msg70982#msg70982 date=1132860004 a dit:
j'enlev donc les champs reference il ne serv a rien???? dans les deux tabl???

Non, il faut les conserver. Chaque champ reference est clé primaire de sa table mais ils ne sont pas en relation.
 

lolye95

New Member
rien compri
donc je garde tout ce que tu as vu mai je rajout just ds la tabl enfant N° parent c tou??? le rest est bon rien a suprimer??
 

patrice084

Best Member
lolye95 link=topic=6924.msg70995#msg70995 date=1132860915 a dit:
rien compri
donc je garde tout ce que tu as vu mai je rajout just ds la tabl enfant N° parent c tou??? le rest est bon rien a suprimer??

Oui, vous rajoutez juste le champ dans la table enfant afin de pouvoir établir la relation entre les deux tables.

Attention, si vous ne comprenez pas à ce stade, vous aurez encore plus de mal par la suite. Essayez de vous documenter sur le MCD.
 

lolye95

New Member
si c'est bon je compren mai franchemen ce cas est ambigu la preuve tout le monde ne compren pa ce cas pfff
dans la table enfant le numéro paren je doi le rajouter moi meme en regardan par rapor a la tabl paren ou il faut faire une manipulation ???? comme pour calculer lage je ne sais pas le faire on ne m'a pas appris cela
 

moime

Best Member
lolye95 link=topic=6924.msg71002#msg71002 date=1132861749 a dit:
si c'est bon je compren mai franchemen ce cas est ambigu la preuve tout le monde ne compren pa ce cas pfff
dans la table enfant le numéro paren je doi le rajouter moi meme en regardan par rapor a la tabl paren ou il faut faire une manipulation ???? comme pour calculer lage je ne sais pas le faire on ne m'a pas appris cela
imagine une boite avec des fiches des parents (nom prenom...) et une autre pour les enfants, tu n'as aucun moyen de savoir qui est l'enfant de qui, seul moyen: tu prend la fiche des enfants et tu y ajoute une ligne qui permet d'identifier les parents, donc si je te dis quel est le parent de l'enfatn bidule, tu prends sa fiche tu regarde le numéro identifiant le parent et tu vas dans la fiche parent pour sortir la fiche correspondant à ce numéro,
c'est pareil sur access, dans la table enfants tu dois ajouter un champs numero de parent et à chaque fois que tu saisies une fiche tu dois y integrer le numero des parents, et c'est ce champs là qui va faire la liaison avec la table parents,
 

patrice084

Best Member
lolye95 link=topic=6924.msg71002#msg71002 date=1132861749 a dit:
si c'est bon je compren mai franchemen ce cas est ambigu la preuve tout le monde ne compren pa ce cas pfff
dans la table enfant le numéro paren je doi le rajouter moi meme en regardan par rapor a la tabl paren ou il faut faire une manipulation ???? comme pour calculer lage je ne sais pas le faire on ne m'a pas appris cela

Moime a répondu pour la saisie du champ. Dans un cas comme cela, je demande à mes stagiaires de faire une liste déroulante qui permettra de choisir le parent de l'enfant.

Pour l'age, si vous relisez les premiers posts de ce sujet, vous y trouverez la réponse.
 

vestale974

Well-Known Member
Salut,
Un petit coup de pouce
Modèle relationnel :

EMPLOYÉ(Num_Emp, Titre_Emp, Prenom_Emp, Nom_Emp, Adresse_Emp, CP_Emp, Ville_Emp, Service_Emp, Site_Emp)

ENFANT(Num_Enf, Prenom_Enf, Nom_Enf, Datenaissance_Enf, Age_Enf, Sexe_Enf, Num_Emp#)

Dans la pièce jointe de ce post, un exemple basic pour expliquer la présence de Num_Emp# dans la table ENFANT.

Si tu travailles sur fiche papier, il n'y aura aucun problème pour répertorier et reconnaitre les enfants d'un employé, par contre lorsque tu vas vouloir informatiser ton fichier, il te faudra bien faire correspondre par employé, le ou les enfants de cet employé, d'où la présence obligatoire dans la table ENFANT du champ Num_Emp# (clé étrangère). Cette clé a pour objet d'indiquer qu'un enfant parmis tous ceux qui existent dans la table ENFANT appartient précisement à un employé et un seul parmis toute la liste d'employés de la table EMPLOYÉ.

Lorsque tu auras réalisé tes 2 tables, puis mis en relation ces 2 tables, je te conseille alors de créer un formulaire. Tu cliques une fois sur la table EMPLOYÉ et dans la barre d'outils standard (à droite), l'icône Nouvel objet et tu sélectionnes "formulaire instantané". Access va générer automatiquement un formulaire/sous-formulaire. Le formulaire contiendra les infos EMPLOYÉ et le sous-formulaire les infos ENFANT.

Un lien pour comprendre le MCD
http://www.ac-grenoble.fr/ecogest/pedago/administration/prodpeda/mcd.htm
@+
 

moime

Best Member
tu as crée la colonne en question mais..tu n'as pas encore mis les noms des parents concernés, et tu n'as pas encore fait les liens entre les deux tables, donc tu vas dans le menu
outils relations et tu ajoutes les deux tables puis
tu fais glisser avec la sours le numéro de parent d'une table sur le numéro parent de l'autre, ça indique à access que ce qui va faire le lien entre un enfant et un parent c'est le numéro de parent
tu lui demandes de creer la relation et puis tu peux maitenant faire tes requetes, autre solution, modifier la table enfants pour choisir dedans le numéro du parent : c'est ce que j'ai fais ici
http://cjoint.com/?lzpEAUPahV
j'ai modifié et jai ajouté la requete pour avoir le nom prenom et l'age (mais bon pour l'age je suis sûr qu'il y a plus simple http://cjoint.com/?lzpMNSmK2T
 

vestale974

Well-Known Member
Salut,

:cool: sympa la fonction calcul de l'âge, mais il y a peut être plus simple
http://cjoint.com/?lzrzNXOa6f

Mais bon, il y a quand même une anomalie dans cette base de données. La donnée âge étant une donnée volatile et de plus calculée, elle n'a donc absolument rien à faire dans une table.
@+
 

moime

Best Member
j'avais effectivement oublié de le dire ..l'age ne peut pas figurer dans la table, il faut le recalculer à chaque fois
par contre pour la fonction de calcul...j'ai bien dis qu'il y a certainement plus facile....on fait....comme on peut en attendant de faire ce qui est mieux...
effectivement c'est plus adapté je m'en doutais un peu car j'utilise les fonctions sous excel (legerement différentes) notamment pour automatiser un tableau d'amortissement d'immobilisation (calcul automatique du prorata temporis) par contre je ne suis pas certain que ça paraissent plus facile pour les debutants... et surtout qu'ils retiennent sans l'utiliser plusieurs foi... en tout cas merci je retiens
 

patrice084

Best Member
moime link=topic=6924.msg71520#msg71520 date=1132929277 a dit:
j'ai modifié et jai ajouté la requete pour avoir le nom prenom et l'age (mais bon pour l'age je suis sûr qu'il y a plus simple http://cjoint.com/?lzpMNSmK2T


J'utilise cette même manière sauf que je prends la partie entière (ent(..)). Cela permet de l'utiliser aussi dans excel.
 

patrice084

Best Member
lolye95 link=topic=6924.msg71673#msg71673 date=1132939596 a dit:
c'est un peu trop compliqué pour moi j'abandonne

Ce que Moime voulait dire c'est que vos tables sont correctes mais que vous n'avez pas saisie dans la table enfant le numéro des parents. En laissant ainsi vous serez dans l'impossibilité de dire à quels parents appartiennent les enfants.

Vous devez donc dans votre table enfants indiquer pour chacun le numéro des parents correspondants. Votre problème vient d'un manque de connaissance du travail sur les bases de données et d'un manque de connaissance du logiciel Access. Cela fait beaucoup pour réaliser facilement cet exercice.

Avant de passer sur le logiciel vous devez comprendre ce que l'on vous demande et vous le représenter mentalement ou si c'est plus facile sur papier et surtout bien identifier ce que l'on vous demande. Dans le cas présent, il est demandé :
1 - Repérer les enfants concernés par la fêtes de la fin de l'année en fonction de leur âge
2 - Inviter les parents à venir à la fête de fin d'année avec leur enfant

Les éléments que l'on vous donne :

1 - La liste des enfants
2 - La liste des salariés

Vous en déduisez qu'il faut au minimum de tables mais rapidement vous devez voir que pour pouvoir écrire aux parents, vous aurez besoin de prendre des informations des deux tables (informatin sur l'enfant et information sur les parents). Or, dans access, on ne peut extraire simultanément des données de deux tables que si elles sont en relation. Le mot est laché ; relation mais comme dans toute relation, il faut être au moins deux. Il faut donc identifier dans les deux tables en présence les champs qui seront en relation.

Dans la logique, on peut considérer que l'on va d'abord saisir les salariés et qu'ensuite, on fera la saisie des enfants des salariés. On va donc anticiper, en se disant que ce serait tout de même plus facile lors de la saisie des fiches des enfants de choisir les parents correspondants dans une liste déroulante. Pour cela, on reviendra dans la table enfant et sur le champ No_parent, on choisira dans type de données l'option assistant liste de choix. (on reviendra dessus si cela vous interesse).

En créant cette liste de choix, access va définir lui même la relation entre les deux tables. Il suffira juste de revenir dans la fenêtre des relations pour modifier la relation et y appliquer l'intégrité référentielle.

Avantage de la méthode :
1 - La relation se trouve définie sur les bons champs.
2 - Vous n'aurez plus qu'à sélectionner le parent correspondant.

Voilà en gros le travail. j'ajouterai que si vous faisiez ce cas chez moi, je vous imposerai de créer un formulaire pour chaque saisie (parent et enfant), ainsi que de créer un menu général qui permettrai à n'importe qui d'exploiter l'application en cliquant simplement sur des boutons.

En conclusion, je dirai qu'il ne faut pas vous décourager et abandonner. Vous avez ici des personnes qualifiées prêtes à vous répondre. Je dirai profitez de l'aubaine :biggrin: Vous verrez que progressivement vous comprendrez mieux comment fonctionne access. Enfin (après promis j'arrête), il faut environ 63 heures à une personne en face à face pédagogique pour voir :
- Tables
- requêtes sélections et requetes actions
- Formulaire (simple, sous formulaire, menu,...)
- Etat (simple, regroupement)
alors, il parait normal que vous ayez du mal à y rentrer.
 

patrice084

Best Member
teetoon84 link=topic=6924.msg71788#msg71788 date=1132947336 a dit:
et moi j ai toujours rien compris ... :blink: :blink: :blink: :blink:
J'ai du mal

Soyez plus précis sur ce que vous ne comprenez pas et à quel moment vous décrochez !
 

moime

Best Member
je ne peux pas dire mieux que patrice, juste il faut savoir que contrairement au traitement de texte ou on peut se permettre de faire des choses non recommandées du moment que le document imprimé est correct, le sgbd necessite forcement une reflexion préalable, (d'ailleurs si tu fais un bts AD on vous enseigne en organisation gestion, le MCD, le MLD ce n'est pas un cours theorique (meme si certains profs l'enseignent comme ça) c'est bien dans des situations comme celle là qu'on s'en sert, et encore il ya plus tordu comme cas,
il n'est pas concevable de se mettre devant tableur ou un sgbd sans avoir quelques acquis en utilisant un min exemple ,mais surtout il faut pas saisir beaucoup de données avant de s'assurer que ça fonctionne sinon bonjour la perte de temps
et comme pour piloter un avion...après la formation c'est le nombre d'heure de vol qui confirme la competence
bon courage