Requête paramétrée

Fermé
merl875 Messages postés 40 Date d'inscription mercredi 24 octobre 2012 Statut Membre Dernière intervention 27 novembre 2013 - 1 mars 2013 à 10:30
 tessel75 - 1 mars 2013 à 22:41
Bonjour,

Je voudrai créer un formulaire sous access qui contiendera trois champs: a,b et c
Le champs a possède plusieurs éléments par exemple a={1, 2,3,4,5,6,7,8,9,10} le champs b quant a lui est relié à "a" avec une relation d'un à plusieurs (la relation va de a vers b) c'est à dire qu'un élement de "a" va avoir plusieurs élements dans b par exemple 1={ x,y,z} pareil pour le champ c qui aura une relation de un à plusieurs en partant de b par exemple x={ i,j,k}
Ce que je voudrai avoir dans mon formulaire c'est que lorsque je vais saisir un élément du champ a , il me fasse apparaitre que les éléments du champ b ayant une relation avec ce que j'ai saisi , même chose avec le champ c qui fera apparaitre que les éléments qui ont une relation avec ce que j'ai saisie au champ b.

je ne sais pas trop si c'est bien éxpliqué , j'ai en tout cas fait de mon mieux !
On m'a dit que je pouvais faire ça avec une requête paramétrée , pouvez vous m'aider ?

Merci !

2 réponses

castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
1 mars 2013 à 16:18
Bonjour
Si j'ai bien compris:
la table B reliée un à plusieurs vers la table A
La table C reliee un à plusieurs vers la table B ou A reliée un à plusieurs vers C?
0
merl875 Messages postés 40 Date d'inscription mercredi 24 octobre 2012 Statut Membre Dernière intervention 27 novembre 2013 10
1 mars 2013 à 19:41
Non ce n'est pas cela !
La table A est relié à un à plusieurs avec la table B
La table B est reliée un à plusieurs avec la table C
Il n 'y a que trois tables et deux relations seulement !
0
Bonsoir,
Il te faut des requêtes en cascade, càd tu sélectionnes A, grâce auquel tu sélectionnes B, grâce auquel tu sélectionnes C.
En fait peut importe que les tables soient dans des un à plusieurs dans un certain ordre.
Pour résoudre cela il te faut 3 requêtes successives qui sont les requêtes-sources des contrôles à choix multiples de ton formulaire.
En A, pas de problème particulier: tu crées un contrôle "Zone de liste déroulante" dont le "contenu" est ta 1ère requête (Select A ... etc)
En B, 2ème contrôle "Zone de liste déroulante" dont le "contenu" sera une 2ème requête de la forme : Select B ... Where A' = Forms!NomDuFormulaire!ControleA
En C, 3ème contrôle "Zone de liste déroulante" dont le "contenu" sera une 3ème requête de la forme : Select C ... Where A' = Forms!NomDuFormulaire!ControleA and B' = Forms!NomDuFormulaire!ControleB
A' et B' sont les champs en liaison avec les 2 tables T_Anatole et T_Bernard précédentes
Attention si tu es débutant sur Access, le "contenu" n'est pas la "SourceContrôle", c'est le contenu de la liste déroulante

Tu n'as nul besoin d'écrire toi-même le code SQL, tu peux très bien le faire avec l'assistant Création de Requête; Access fera la conversion tout seul.
Par contre il te faudra un petit code VBA sur chacun des contrôles pour actualiser la requête de chacun; sans cela les requêtes ne prendraient pas en compte la modification survenue dans le contrôle précédent.

En cas de difficulté tu peux poster un extrait de ta base (sans nom privé) sur cjoint.com pour qu'on puisse regarder d plus près.
Bonne suite
0