Comment afficher sur un formulaire des champs d'une autre table

Résolu/Fermé
lecrol Messages postés 200 Date d'inscription samedi 4 juillet 2009 Statut Membre Dernière intervention 25 juillet 2016 - 20 août 2014 à 22:04
lecrol Messages postés 200 Date d'inscription samedi 4 juillet 2009 Statut Membre Dernière intervention 25 juillet 2016 - 22 août 2014 à 19:36
Bonjour,

J'ai deux tables liées.

L'une, T1, comporte des individus avec leur nom. La seconde, T2, comporte des textes par individus. Elle est donc liée à la 1e par le nom (T1.nom)

Sur un formulaire des textes, le nom s'affiche sans problème

Je voudrais, en plus afficher sur mon formulaire le prénom et le pays, qui se trouvent eux aussi sur T1, Je le sais eux aussi définis sur la table T2.

Je ne sais pas comment faire pour définir, sur mon formulaire T2, mes champs prénom et pays qui viennent de T1.

Merci à qui voudra me dépanner.
Cordialement,
Roland
A voir également:

3 réponses

blux Messages postés 26006 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
21 août 2014 à 10:34
Salut,

tu crées la requête qui te permet d'afficher ce que tu souhaites (avec des éléments de T1 et T2) et ensuite tu crées ton formulaire T2 basé sur cette requête.
0
lecrol Messages postés 200 Date d'inscription samedi 4 juillet 2009 Statut Membre Dernière intervention 25 juillet 2016 24
21 août 2014 à 19:36
Bonjour et merci de ta réponse

J'ai essayé de créer une requête mais en fait je n'y arrive pas

Sur mon formulaire T2, j'avais tenté en paramètre "source" de mon champ "[Pays] de placer un code:
SELECT Participants.Pays FROM Participants INNER JOIN Textes ON Participants.identité = Textes.identité;

Mais ça ne me donne que #nom ? dans mon champ [Pays]
-------------------------------------
Quant à la requête, j'en ai créée une avec ce code SQL
SELECT Textes.identité AS Textes_identité, Textes.Titre, Participants.identité AS Participants_identité, Participants.Pays
FROM Participants INNER JOIN Textes ON Participants.identité = Textes.identité;

Mais là, et je ne sais pas pourquoi, j'ai un message d'erreur "Incohérence de type"

Si tu peux m'éclairer, je t'en remercie Car je suis paumé !
En fait je pense que tu auras compris que j'ai deux tables: Participants et Textes
Plusieurs textes par participants Les 2 tables sont liées sur un champ [Identité]
J'ai placé ce champ [Pays] aussi sur la table T2. Peut-être ne fallait-il pas le faire ?

Le pays se trouve sur T1 et, en fait, je ne voudrais seulement que l'afficher sur un formulaire T2


Cordialement,
Roland
0
blux Messages postés 26006 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
22 août 2014 à 09:24
Le champs pays n'a pas à être dans T2, si T1 et T2 sont en relation.
Tu fais une requête (avec l'assistant) dans laquelle tu choisis les champs que tu souhaites, tu la testes et lorsqu'elle renvoie ce que tu souhaites, tu fais un nouveau formulaire basé sur cette requête (avec l'assistant formulaire)
0
lecrol Messages postés 200 Date d'inscription samedi 4 juillet 2009 Statut Membre Dernière intervention 25 juillet 2016 24
22 août 2014 à 19:36
Merci Blux de ta patience. J'ai suivi ton conseil et je me suis accroché. Et je m'en suis sorti !!

Ce qui ne marchait pas, c'est tout con; Sur T1, le champ Participants.Identité est défini en format texte

Sur T2, le champ textes.identité est une zone liste de choix liée à Participants.identité
Ce que je n'avais pas vu, c'est que sur T2 ce champ est au format numérique. D'où l'incompatibilité de type dans mes égalités du code SQL:
Participants.Identité = textes.identité

Il m'a suffi de modifier le code SQL pour écrire: Participants.N° = textes.identité

Et tout fonctionne bien !
Encore merci de ta patience et de tes conseils super précis,
Bravo à ce site et à tous ses animateurs !
Roland
0