Je cherche la syntaxe pour affecter la valeur d'un champ à une variable dans acc

Résolu
cs_Memer Messages postés 4 Date d'inscription jeudi 6 octobre 2005 Statut Membre Dernière intervention 7 octobre 2005 - 6 oct. 2005 à 21:29
cs_Memer Messages postés 4 Date d'inscription jeudi 6 octobre 2005 Statut Membre Dernière intervention 7 octobre 2005 - 7 oct. 2005 à 19:45
Bonjour,

voila le problème en exemple:
une table nommé tab1
un champ nommé champ_txt de type texte
une variable texte nommé txt

je veux que la variable txt soit égale à la troisième valeur du champ_txt,
Mais je bute sur la syntaxe
ça doit être un truc simple du genre:

txt = !tab1!champ_txt.??????(3)

Merci d'aider un débutant en vba access

7 réponses

tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
7 oct. 2005 à 15:38
En supposant que tu veux la valeur de champ_txt à la 3eme ligne de ta table

Et que tu aies défini un champ nommé N° de type NuméroAuto

Pour passer la valeur de champ_txt tu dois écrire:

txt DLookup("Champ_txt","tab1","N° 3")
Jte conseil de regarder dans l'aide, les fonctions suivantes très utiles en VBA

Dlookup, DCount, DMax, DMin, DLast, Dfirst...

Ca évite d'écrire 36000 lignes de code avec les recordsets

TBBUIM
3
Sniper_Vgaerr Messages postés 113 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 14 août 2006
6 oct. 2005 à 22:01
Salut,

Il faut que tu mettes :

txt = ![champ_txt]
Ciao
@+
0
cs_Memer Messages postés 4 Date d'inscription jeudi 6 octobre 2005 Statut Membre Dernière intervention 7 octobre 2005
6 oct. 2005 à 22:28
Merci mais comment affecter le trosième enregistrement à la variable ?
txt = ![tab1]![champ_txt].??????(3)

MEMER
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
7 oct. 2005 à 08:56
Ce n'est pas aussi simple que cela. Enfin, je ne crois pas.

Personnellement, si je veux affecter la valeur d'un enregistrement dans une variable, je suis obligée de faire une requête pour identifier l'enregistrement qui m'intéresse.

Je crée donc un objet Recordset alimenté avec une requête, du genre : "SELECT * from Tab1" si je suis sûre de vouloir le 3ème enregistrement.
Puis avec
Recordset.movefirst
Recordset.movenext
Recordset.movenext
Je me positionne sur mon enregistrement.

Autrement, il faut un critère, par exemple :
"SELECT * from Tab1 Where Num=3" si tu as un numéro automatique.

Une fois que tu es sur l'enregistrement désiré, il ne te reste plus qu'à alimenter ta variable :
txt = Recordset.fields("champ_txt")

Il y a peut être plus simple, mais au moins avec ça, ça marche. Et ce, quelque soit le nombre de tables, de champs, d'enregistrements, etc ...

Molenn
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Memer Messages postés 4 Date d'inscription jeudi 6 octobre 2005 Statut Membre Dernière intervention 7 octobre 2005
7 oct. 2005 à 09:07
Merci
je test ça

MEMER
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
7 oct. 2005 à 15:32
TBBUIM
0
cs_Memer Messages postés 4 Date d'inscription jeudi 6 octobre 2005 Statut Membre Dernière intervention 7 octobre 2005
7 oct. 2005 à 19:45
Salut
Merci c'est pile poile ce que je cherchais, ça marche impec

je m'étais lancé dans le recordset mais je n'avais pas réussi

Merci à tous
@+

MEMER
0
Rejoignez-nous