Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Variabiliser le nom d'un champ

2 réponses
Avatar
Jean-François
Bonsoir,

Comment mettre dans une variable le nom d'un champ, et non pas la chaine de
caractère que ce nom constitue nécessairement ? Voici le problème :

J'ai une table de 4 champs : ID_titre , titre_fr , titre_en , titre_de.
Soit en fait, une table qui contient un titre (mettons de livre) en trois
langues différentes.

Dans ma fonction, je pourrais écrire :
...
variable1 = .[titre fr]
variable2 = .[titre en]
variable3 = .[titre de]
...
Pour des raisons pratiques un peu longues à exposer ici (et sans grand
intérêt), je voudrais pouvoir écrire quelque chose du genre :
...
Dim variable (3) as string '(à moins que ce soit "as field" ? voir la suite)
Dim langue (3) as string
langue (1) = "fr"
langue (2) = "en"
langue(3) = "de"
...
for i = 1 to 3
variable(i) = ".[titre" & langue (i) & "]"
next i
...

D'expérience, je sais que ce n'est pas la bonne façon d'écrire l'affectation
des "variable(i)", puisque elles prennent pour valeurs les chaines ".[titre
fr]" , ".[titre en]" et ".[titre de]", et non pas le contenu des champs des
mêmes noms.

Donc... Quelle est la bonne méthode pour variabiliser mes noms de champs ?

Merci de votre aide,
JF

2 réponses

Avatar
LiR
Bonjour,

-> à moins que ce soit "as field" ?

Je dirais oui :

Dim variable (1 to 3) as DAO.Field
Dim langue (1 to 3) as String
Dim RS as DAO.Recordset
langue (1) = "fr"
langue (2) = "en"
langue(3) = "de"

for i = 1 to 3
Set variable(i) = RS.Fields("titre" & langue (i))
next i

'.....
'Plus loin (exemple) :

contenu = variable(i).Value

Je pense que ça devrait répondre à ta question


Bonsoir,

Comment mettre dans une variable le nom d'un champ, et non pas la chaine de
caractère que ce nom constitue nécessairement ? Voici le problème :

J'ai une table de 4 champs : ID_titre , titre_fr , titre_en , titre_de.
Soit en fait, une table qui contient un titre (mettons de livre) en trois
langues différentes.

Dans ma fonction, je pourrais écrire :
....
variable1 = .[titre fr]
variable2 = .[titre en]
variable3 = .[titre de]
....
Pour des raisons pratiques un peu longues à exposer ici (et sans grand
intérêt), je voudrais pouvoir écrire quelque chose du genre :
....
Dim variable (3) as string '(à moins que ce soit "as field" ? voir la suite)
Dim langue (3) as string
langue (1) = "fr"
langue (2) = "en"
langue(3) = "de"
....
for i = 1 to 3
variable(i) = ".[titre" & langue (i) & "]"
next i
....

D'expérience, je sais que ce n'est pas la bonne façon d'écrire l'affectation
des "variable(i)", puisque elles prennent pour valeurs les chaines ".[titre
fr]" , ".[titre en]" et ".[titre de]", et non pas le contenu des champs des
mêmes noms.

Donc... Quelle est la bonne méthode pour variabiliser mes noms de champs ?

Merci de votre aide,
JF





Avatar
Jean-François
Oh que c'est beau !
Je sens que ça va marcher à merveille !

Merci de ton aide
JF

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

Bonjour,

-> à moins que ce soit "as field" ?

Je dirais oui :

Dim variable (1 to 3) as DAO.Field
Dim langue (1 to 3) as String
Dim RS as DAO.Recordset
langue (1) = "fr"
langue (2) = "en"
langue(3) = "de"

for i = 1 to 3
Set variable(i) = RS.Fields("titre" & langue (i))
next i

'.....
'Plus loin (exemple) :

contenu = variable(i).Value

Je pense que ça devrait répondre à ta question


Bonsoir,

Comment mettre dans une variable le nom d'un champ, et non pas la chaine
de
caractère que ce nom constitue nécessairement ? Voici le problème :

J'ai une table de 4 champs : ID_titre , titre_fr , titre_en , titre_de.
Soit en fait, une table qui contient un titre (mettons de livre) en trois
langues différentes.

Dans ma fonction, je pourrais écrire :
....
variable1 = .[titre fr]
variable2 = .[titre en]
variable3 = .[titre de]
....
Pour des raisons pratiques un peu longues à exposer ici (et sans grand
intérêt), je voudrais pouvoir écrire quelque chose du genre :
....
Dim variable (3) as string '(à moins que ce soit "as field" ? voir la
suite)
Dim langue (3) as string
langue (1) = "fr"
langue (2) = "en"
langue(3) = "de"
....
for i = 1 to 3
variable(i) = ".[titre" & langue (i) & "]"
next i
....

D'expérience, je sais que ce n'est pas la bonne façon d'écrire
l'affectation
des "variable(i)", puisque elles prennent pour valeurs les chaines
".[titre
fr]" , ".[titre en]" et ".[titre de]", et non pas le contenu des champs
des
mêmes noms.

Donc... Quelle est la bonne méthode pour variabiliser mes noms de champs
?

Merci de votre aide,
JF