Bonjour a tous,
petite question sur l'utilisation de la fonction eval (je suis en vba sous access)
Posons tout d'abord les hypotheses :
soit le code suivant
Dim db As DAO.Database
Dim rs As DAO.Recordset
dim maquery as string
maquery = "select champ1,champ2 from matable where id=1"
Set db = CurrentDb
Set rs = db.OpenRecordset(MaQuerie)
rs.OpenRecordset
forms!form1.champ1 = rs!champ1
forms!form1.champ2 = rs!champ2
avec champ1 et champ2 prséent sur mon form1, jusque la rien de bien compliqué me direz vous.
Maintenant si je veux le meme code mais avec 25 champs (et que les 25 champs soit définis sur mon form1)
maquery devient donc :
maquery = "select champ1,champ2,champ3,champ4,champ5...., champ25 from matable where id=1"
et l'assignation des variables en bas devient d'autant plus longues
forms!form1.champ1 = rs!champ1
forms!form1.champ2 = rs!champ2
forms!form1.champ3 = rs!champ3
forms!form1.champ4 = rs!champ4
.....
forms!form1.champ25 = rs!champ25
pour faciliter la chose j'ai voulu pondre un truc comme ca :
for each elem in rs.fields
eval("forms!form1." & elem & " = rs!" & elem)
next
vous vous doutez que si je poste ce message c'est parce que ca n'a pas voulu marcher :D
en fait eval fait le test de savoir si forms!form1.champ1 = rs!champ1 et n'assigne pas rs!champ1 a mon champ sur mon formulaire...
quelqu'un aurait il une idée brillante ?
Merci d'avance