Je cherche la syntaxe pour affecter la valeur d'un champ à une variable dans acc [Résolu]

Messages postés
4
Date d'inscription
jeudi 6 octobre 2005
Dernière intervention
7 octobre 2005
- - Dernière réponse : cs_Memer
Messages postés
4
Date d'inscription
jeudi 6 octobre 2005
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
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Dernière intervention
3 février 2011
5
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 98 internautes nous ont dit merci ce mois-ci

Messages postés
113
Date d'inscription
jeudi 2 décembre 2004
Dernière intervention
14 août 2006
0
Merci
Salut,

Il faut que tu mettes :

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

MEMER
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Dernière intervention
23 février 2011
5
0
Merci
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
Messages postés
4
Date d'inscription
jeudi 6 octobre 2005
Dernière intervention
7 octobre 2005
0
Merci
Merci
je test ça

MEMER
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Dernière intervention
3 février 2011
5
0
Merci
TBBUIM
Messages postés
4
Date d'inscription
jeudi 6 octobre 2005
Dernière intervention
7 octobre 2005
0
Merci
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.