Affecter un nom de champ par le contenu d'un autre

Résolu/Fermé
Eddieb83 Messages postés 3 Date d'inscription lundi 9 avril 2012 Statut Membre Dernière intervention 10 juin 2018 - 9 juin 2018 à 18:35
Eddieb83 Messages postés 3 Date d'inscription lundi 9 avril 2012 Statut Membre Dernière intervention 10 juin 2018 - 10 juin 2018 à 21:14
Peut-on, dans une table, indiquer le champ d'une autre table dont on veut récupérer le contenu ?
Cas pratique :
- une table T1 contient les champs [date_effet1], [H1], [H2], [H3] et [H4].
- une table T2 contient les champs [date_effet2], [C1], [C2], [C3] et [C4]. [C4] contient une valeur qui est le nom du champ de T1 à récupérer. (exemple : dans l'enregistrement #1, le contenu de [C4] est "H2" et, dans l'enregistrement #2, le contenu de [C4] est "H4").
- une relation existe entre [date_effet2] et [date_effet2]
- est-il possible, dans une requête, après avoir précisé la date d'effet au moyen d'une boîte de dialogue Paramètres (=[date_effet1] et [date_effet2]), d'obtenir les contenus de [C1], [C2], [C3] et [H2] pour #1 et [H4] pour #2 ?

1 réponse

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
Modifié le 10 juin 2018 à 11:38
bonjour, je pense que, dans une requête, tu peux faire cela en utilisant la fonction iif ou la fonction dlookup.
exemple avec dlookup:
SELECT eddie1.dt, eddie2.c1, eddie2.c2, eddie2.c3, eddie2.c4,
 DLookUp(eddie2.c4,"eddie1","format(eddie1.dt,'yyyymmdd')='"&format(eddie1.dt,'yyyymmdd')&"'")
FROM eddie1 INNER JOIN eddie2 ON eddie1.dt = eddie2.dt;
0
Eddieb83 Messages postés 3 Date d'inscription lundi 9 avril 2012 Statut Membre Dernière intervention 10 juin 2018
10 juin 2018 à 12:33
Merci, mais le problème n'est pas de récupérer la date mais plutôt un le contenu d'un champ dont le nom est dans une autre table.
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > Eddieb83 Messages postés 3 Date d'inscription lundi 9 avril 2012 Statut Membre Dernière intervention 10 juin 2018
Modifié le 10 juin 2018 à 12:43
l'as-tu testé?
c'est exactement ce que cela fait. cela récupère dans la table eddie1 le contenu du champ dont le nom est dans le champ c4 de la table eddie2. la date est utilisée pour récupérer le champ dans le bon enregistrement de la table eddie1.
0
Eddieb83 Messages postés 3 Date d'inscription lundi 9 avril 2012 Statut Membre Dernière intervention 10 juin 2018
10 juin 2018 à 21:14
Super ! J'avais lu un peu trop vite et sans tester, sans remarquer le premier argument. Là, tout fonctionne et le résultat souhaité est atteint. Encore merci.
0