OVH Cloud OVH Cloud

Formulaire et Clé etrangere

4 réponses
Avatar
BZP
Bonjour,

Je vous explique ma probl=E9matique. Je veux cr=E9er un formulaire sur
une table qui contient une cl=E9 =E9trangere et au lieu d'avoir un champs
texte ou je dois rentrer la cl=E9 etrangere, je souhaiterai avoir une
liste d=E9roulante qui contient non pas la cl=E9 etrangere mais une
propri=E9t=E9 de la table auquelle fait reference la cl=E9 etrangere.

Voici mes tables

+--------------+--------+------------------------+
| auteur | Type | Contrainte |
+--------------+--------+------------------------+
| IdAuteur | Auto | PK |
| NomAuteur | Texte | |
| PrenomAuteur | Texte | |
+--------------+--------+------------------------+

+--------------+--------+------------------------+
| tableau | Type | Contrainte |
+--------------+--------+------------------------+
| IdTableau | Auto | PK |
| NomTableau | Texte | |
| DescTableau | Texte | |
| IdAuteur | Entier | FK (IdAuteur - auteur) |
+--------------+--------+------------------------+

Je voudrais donc que dans mon formulaire tableau un menu d=E9roulant
proposant les diff=E9rents auteurs.
J'ai trouv=E9 un moyen en choisisssant dans les propri=E9t=E9s de la
colone IdAuteur de la table tableau un menu deroulant aliment=E9 par une
requete (SELECT NomAuteur FROM auteur) mais le probleme est que je dois
changer le type en TEXTE et donc ne plus gerer mes cl=E9s etrangeres.
Si vous avez la m=E9thode je suis preneur.

Merci

4 réponses

Avatar
Eric
Bonjour,

Change le SQL de la liste déroulante par :
SELECT IdAuteur,NomAuteur FROM auteur
Colonne liée : 1
Nb de colonnes : 2
Largeur Colonnes : 0cm;2,54cm ' 1ere colonne masquée

Le défaut c'est que dans la table tu verras le nom et pas l'IdAuteur de
l'auteur.

Autre solution :
Ne rien faire dans la table.
Transformer le champ Zone de Texte du formulaire en zone de liste
modifiable (clic droit sur le controle et Remplacer par ...) et définir
dans ses propriétés :
Données
Origine source : Table/Requête
Contenu : le SQL ci-dessus
Colonne liée :1
Format
Nb de colonnes : 2
Largeur :0cm;2,54cm

Dans les 2 cas la liste doit avoir les champs IdAuteur et Auteur car tu
stockes l'IdAuteur et 'vois' le nom.

Bonjour,

Je vous explique ma problématique. Je veux créer un formulaire sur
une table qui contient une clé étrangere et au lieu d'avoir un champs
texte ou je dois rentrer la clé etrangere, je souhaiterai avoir une
liste déroulante qui contient non pas la clé etrangere mais une
propriété de la table auquelle fait reference la clé etrangere.

Voici mes tables

+--------------+--------+------------------------+
| auteur | Type | Contrainte |
+--------------+--------+------------------------+
| IdAuteur | Auto | PK |
| NomAuteur | Texte | |
| PrenomAuteur | Texte | |
+--------------+--------+------------------------+

+--------------+--------+------------------------+
| tableau | Type | Contrainte |
+--------------+--------+------------------------+
| IdTableau | Auto | PK |
| NomTableau | Texte | |
| DescTableau | Texte | |
| IdAuteur | Entier | FK (IdAuteur - auteur) |
+--------------+--------+------------------------+

Je voudrais donc que dans mon formulaire tableau un menu déroulant
proposant les différents auteurs.
J'ai trouvé un moyen en choisisssant dans les propriétés de la
colone IdAuteur de la table tableau un menu deroulant alimenté par une
requete (SELECT NomAuteur FROM auteur) mais le probleme est que je dois
changer le type en TEXTE et donc ne plus gerer mes clés etrangeres.
Si vous avez la méthode je suis preneur.

Merci



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
BZP
Rhaa ça fait un petit peu bidouille mais ca marche :)
Merci !
Avatar
BZP
Rhaa ça fait un petit peu bidouille mais ca marche :)
Merci !
Avatar
Eric
re,

Rhaa ça fait un petit peu bidouille mais ca marche :)


!!!!!!!!!!!!!!!!!!!!

Merci !



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr