/Le 27/10/2011 10:54, Hugues Bousquet (Prof) a écrit 
/Bonjour,
j'ai une base de donnée, sous base, comportant plusieurs tables en relation. Je souhaite, dans un formulaire, obtenir une liste de choix déroulante, qui me permette d'affecter à l'enregistrement en cours un numéro de relation contenu dans la table de relation entre deux autres. Mais pour faciliter la saisie, je souhaite voir s'afficher le contenu d'un champ d'une des tables en relation. Je ne sais comment m'y prendre...
Pour faire bref :
J'ai
une table de membres (id_membre, nom, prénom, adresse)
une table d'enfants (id_enfant, nom, prénom)
une table relation_membre_enfants (id_relation, id_membre, id_enfant)
et je souhaite réaliser un formulaire "enfants" où je pourrai inscrire les enfants (nom, prénom...) ainsi que leur attribuer le membre dont ils dépendent, en utilisant une liste de choix qui me ferait apparaître les noms des différents membres.
Si l'un d'entre vous peut me mettre sur la voie...
D'avance merci
Hugues /
Bonjour,
Voici la solution :
Ajoute d'abord un champ "ref_membre" dans ta table enfant et créée la relation ad-hoc
Une fois ton formulaire enfants créé /(logiquement à partir de ta table enfants)/ tu crée, à l'intérieur de celle-ci un sous formulaire membres.
Voilà comment faire :
En mode édition
Ouvre le navigateur de formulaires par Affichage | Barre d'outils | Ébauche de formulaires
clique sur le bouton "Navigateur de formulaires" pour l'afficher
Bouton droit sur MainForm /(en haut de liste)/, puis Nouveau | formulaire
Le sous-formulaire qui vient de se créer est sélectionné, en bas de liste. Profites-en pour le renommer "sf_membres", par exemple
Bouton droit sur le sous-formulaire puis Propriétés
Dans la boîte qui s'affiche : onglet "Données"
Dans le champ "contenu" choisis la table membres
Dans le champ "Lier les champs maîtres" choisis les champ de la relation qui existe entre les deux tables "enfants" et "membres" /(normalement ref_enfant et id_membre)
/Enfin affiche les contrôles de formulaires par Affichage | Barre d'outils
Choisis zone de liste et crée ce champ dans ton formulaire
Clic droit sur ce nouveau champ | Contrôle... et onglet "Données" dans la boîte qui s'affiche
Dans le champ "champ de données" choisis nom (parmi les champs de la table membre qui doivent y figurer)
Dans le champ "Type du contenu de liste" choisis Sql
Dans le champ contenu de liste tapes : SELECT `nom`, Id_membre FROM `tabase`.`ta_table_membres` ORDER BY `nom` ASC
Et si ça marche, SURTOUT, ne me demande pas pourquoi...
Cordialement. Lucien.