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

cs_Memer 4 Messages postés jeudi 6 octobre 2005Date d'inscription 7 octobre 2005 Dernière intervention - 6 oct. 2005 à 21:29 - Dernière réponse : cs_Memer 4 Messages postés jeudi 6 octobre 2005Date d'inscription 7 octobre 2005 Dernière intervention
- 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
tbbuim1 940 Messages postés jeudi 20 février 2003Date d'inscription 3 février 2011 Dernière intervention - 7 oct. 2005 à 15:38
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

Merci tbbuim1 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

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

Il faut que tu mettes :

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

MEMER
Molenn 797 Messages postés mardi 7 juin 2005Date d'inscription 23 février 2011 Dernière intervention - 7 oct. 2005 à 08:56
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
cs_Memer 4 Messages postés jeudi 6 octobre 2005Date d'inscription 7 octobre 2005 Dernière intervention - 7 oct. 2005 à 09:07
0
Merci
Merci
je test ça

MEMER
tbbuim1 940 Messages postés jeudi 20 février 2003Date d'inscription 3 février 2011 Dernière intervention - 7 oct. 2005 à 15:32
0
Merci
TBBUIM
cs_Memer 4 Messages postés jeudi 6 octobre 2005Date d'inscription 7 octobre 2005 Dernière intervention - 7 oct. 2005 à 19:45
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.