Selection des noms des champs d'une table [Résolu]

Signaler
Messages postés
34
Date d'inscription
lundi 27 décembre 2010
Statut
Membre
Dernière intervention
8 janvier 2011
-
yafee
Messages postés
34
Date d'inscription
lundi 27 décembre 2010
Statut
Membre
Dernière intervention
8 janvier 2011
-
Bonjour,

J'aimerais dans une liste deroulante mettre le nom des champs d'une table.

Par exemple pour la table client(id, nom, adresse...) j'aimerais que ma liste contienne id, nom, adresse.....

Merci de votre aide.

5 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
Re
Oui, normal.
Dans un RecordSet, tu récupères les données recherchées = autant de lignes que de données.
Par contre, le nom des champs (colonnes) est unique pour ce RecordSet, donc, il ne faut pas faire de Do-Loop pour afficher ces .Name

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
Salut
Simple : Tu fais une requète SQL classique avec un RecordSet et un "Select * From maTable" et tu lis le premier enregistrement.
Les noms des champs se trouvent ici :
   monRecordSet.Fields(1).Name
   monRecordSet.Fields(2).Name
en sachant que le numéro de Fields va de 1 à monRecordSet.Fields.Count
(ou peut être de 0 à .Count -1   à vérifier)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
34
Date d'inscription
lundi 27 décembre 2010
Statut
Membre
Dernière intervention
8 janvier 2011

Desole mais j'ai encore un problème : J'ai essaye une première fois et sa a marche mais quand j'ai réessayer une seconde fois l'erreur d'exécution 3265 (Élément non trouve dans cette collection) est apparu sur la ligne rouge

Code:
Set rst bd.OpenRecordset("select * from formation where faitparaffix 'O'")

    cpt = 0
    cmbIntitule.Clear
    Do Until rst.EOF
        cpt = cpt + 1
        For i = 0 To rst.Fields.Count
           cmbIntitule.AddItem (rst.Fields(i).Name)
        Next i
        rst.MoveNext
    Loop
    lblcpt = cpt & " formations chargées"
   
rst.Close

Je sais pas pourquoi mais je sens que c'est pas grand chose mais j'arrive pas a mettre la main dessus

Merci encore
Messages postés
34
Date d'inscription
lundi 27 décembre 2010
Statut
Membre
Dernière intervention
8 janvier 2011

Bon j'ai réussi a résoudre le problème en changeant la boucle par

For i = 0 To rst.Fields.Count - 1

mais maintenant ma liste déroulante se rempli des dizaine et des dizaines de fois au lieu de ne le faire qu'une fois.

J'ai essaye avec un Distinct dans la requête mais c'est bien au niveau de la boucle qu'il y a un problème.

Si quelqu'un a une idée....

Merci
Messages postés
34
Date d'inscription
lundi 27 décembre 2010
Statut
Membre
Dernière intervention
8 janvier 2011

Génial sa marche
Merci beaucoup