Toucher un champ de recordset sans avoir le nom des champs? [Résolu]

Signaler
Messages postés
6
Date d'inscription
jeudi 1 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2004
-
Messages postés
79
Date d'inscription
mercredi 14 avril 2010
Statut
Membre
Dernière intervention
2 août 2014
-
Bonjour,
Bon je pense que mon sujet est loin d'être clair : en fait j'ai un recorset ("dim mod_obj as recorset") qui est initialisé avec une requete ("Select nom, prenom from client"). Mon recordset contient bien tout ce que je veux mais j'ai un petit soucis car j'aimerais que mon code soit à 100% générique. Conclusion je ne veux pas faire "mod_obj!nom" pour toucher la colonne "nom" ; je voudrais me servir de la variable nom qui est ds une TextBox (TB_nom).
Or "mod_obj!TB_nom.text" ne marche pas et
mod_obj![& TB_nom.text &] non plus....
Alors est-ce que quelqu'un pourrait m'aider SVP?
Merci d'avance.

3 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Salut sansoucis
Pour accéder aux données du Recordset sans connaitre le nom des champs, il suffit de faire :
MonRecordSet.Fields(0) ' 1ere champ = Nom
MonRecordSet.Fields(1) ' 2ème champ = Prénom

Vala
Jack
3
Merci

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

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

Messages postés
6
Date d'inscription
jeudi 1 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2004

Merci jack,
en effet j'ai trouvé cette solution à laquelle on peut ajouter :
MonRecordSet.Fields(0).value -> retourne la valeur
MonRecordSet.Fields(0).name -> retourne le nom du champs/de la colonne

En tout cas merci!
3
Merci

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

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

Messages postés
79
Date d'inscription
mercredi 14 avril 2010
Statut
Membre
Dernière intervention
2 août 2014

Si tu transfères ta requête dans une liste déroulante lst_noms, alors le premier champ est accessible via :
dim txt_nom, txt_prenom as string
txt_nom = lst_noms.column(0, lst_noms.listindex)

listindex étant le numéro de la ligne sur laquelle tu viens de cliquer
tu peux aussi forcer pour ne recevoir que la première ligne en remplaçant listindex par 0
Attention, lignes et colonnes vont de 0 à n, pas de 1 à n.
Dans le même genre, si tu as un recorsdet myrecorset, tu peux récupérer la valeur du recordset en codant :
dim txt_nom, txt_prenom as string
txt_nom = myrecordset(0) 
txt_prenom = myrecordset(1)

pour le premier champ etc.