OVH Cloud OVH Cloud

Valeur d'un champ dont le nom est contenu dans un autre champ

2 réponses
Avatar
Sherpa
Bonjour,
Je souhaiterais connaître la valeur d'un champ dont le nom est contenu dans
un autre champ (en Access 2000).
Exemple :
La table "Tab1" contient les champs "ChampA", "ChampB", "ChampC"
La table "Tab2" contient le champ "NomChamp" dont la valeur est le nom d'un
champ de "Tab1"
Comment faire référence à la valeur du champ de "Tab1" dont le nom se trouve
dans "NomChamp" de "Tab2" ?
Cela pourrait donner ceci :
Select Case NomChamp.Value
Case "ChampA"
MsgBox NomChamp.Value & " = " & ChampA.Value
Case "ChampB"
MsgBox NomChamp.Value & " = " & ChampB.Value
Case "ChampC"
MsgBox NomChamp.Value & " = " & ChampC.Value
End Select
Mais comment faire sans passer par un Select Case (si le nombre de champ de
Tab01 est plus important par exemple) ?
Oh là là, je ne sais pas si je suis bien clair ???
En tout cas merci infiniment à ceux qui ont eu la patience de me lire et
d'essayer de comprendre :-)

2 réponses

Avatar
Raymond [mvp]
Bonjour.

tout n'est pas clair mais:
pour récupérer le nom du champ contenu dans NomChamp de tab2, tu peux
utiliser Dlookup et ensuite tu fais ton select dessus

dim X as string
X = DLookup("[NomChamp]", "Tab2", "mon critère......")
Select Case X
Case "ChampA"
MsgBox "NomChamp = " & X
Case "ChampB"
MsgBox "NomChamp = " & X
Case "ChampC"
MsgBox "NomChamp = " & X
End Select



--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Sherpa" a écrit dans le message de news:

Bonjour,
Je souhaiterais connaître la valeur d'un champ dont le nom est contenu
dans
un autre champ (en Access 2000).
Exemple :
La table "Tab1" contient les champs "ChampA", "ChampB", "ChampC"
La table "Tab2" contient le champ "NomChamp" dont la valeur est le nom
d'un
champ de "Tab1"
Comment faire référence à la valeur du champ de "Tab1" dont le nom se
trouve
dans "NomChamp" de "Tab2" ?
Cela pourrait donner ceci :
Select Case NomChamp.Value
Case "ChampA"
MsgBox NomChamp.Value & " = " & ChampA.Value
Case "ChampB"
MsgBox NomChamp.Value & " = " & ChampB.Value
Case "ChampC"
MsgBox NomChamp.Value & " = " & ChampC.Value
End Select
Mais comment faire sans passer par un Select Case (si le nombre de champ
de
Tab01 est plus important par exemple) ?
Oh là là, je ne sais pas si je suis bien clair ???
En tout cas merci infiniment à ceux qui ont eu la patience de me lire et
d'essayer de comprendre :-)


Avatar
Sherpa
Merci Raymond.
Effectivement, la réponse est difficile à apporter puisque le problème n'est
pas très bien enoncé. "Ce qui se conçoit clairement, s'énonce clairement" ...
et ce n'est pas le cas !!!
Mais j'ai trouvé ce que je cherchais :
MsgBox Me.Recordset(Me.NomChamp.Value).Value
... parce que ce que je n'avais pas dit, c'est que ces tables sont dans une
requête source d'un formulaire.
En tous cas, merci pour ton aide.



Bonjour.

tout n'est pas clair mais:
pour récupérer le nom du champ contenu dans NomChamp de tab2, tu peux
utiliser Dlookup et ensuite tu fais ton select dessus

dim X as string
X = DLookup("[NomChamp]", "Tab2", "mon critère......")
Select Case X
Case "ChampA"
MsgBox "NomChamp = " & X
Case "ChampB"
MsgBox "NomChamp = " & X
Case "ChampC"
MsgBox "NomChamp = " & X
End Select



--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Sherpa" a écrit dans le message de news:

Bonjour,
Je souhaiterais connaître la valeur d'un champ dont le nom est contenu
dans
un autre champ (en Access 2000).
Exemple :
La table "Tab1" contient les champs "ChampA", "ChampB", "ChampC"
La table "Tab2" contient le champ "NomChamp" dont la valeur est le nom
d'un
champ de "Tab1"
Comment faire référence à la valeur du champ de "Tab1" dont le nom se
trouve
dans "NomChamp" de "Tab2" ?
Cela pourrait donner ceci :
Select Case NomChamp.Value
Case "ChampA"
MsgBox NomChamp.Value & " = " & ChampA.Value
Case "ChampB"
MsgBox NomChamp.Value & " = " & ChampB.Value
Case "ChampC"
MsgBox NomChamp.Value & " = " & ChampC.Value
End Select
Mais comment faire sans passer par un Select Case (si le nombre de champ
de
Tab01 est plus important par exemple) ?
Oh là là, je ne sais pas si je suis bien clair ???
En tout cas merci infiniment à ceux qui ont eu la patience de me lire et
d'essayer de comprendre :-)