Selection des noms des champs d'une table

Résolu
yafee Messages postés 34 Date d'inscription lundi 27 décembre 2010 Statut Membre Dernière intervention 8 janvier 2011 - 27 mai 2009 à 10:17
yafee Messages postés 34 Date d'inscription lundi 27 décembre 2010 Statut Membre Dernière intervention 8 janvier 2011 - 30 mai 2009 à 23:24
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

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 mai 2009 à 19:23
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)
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
27 mai 2009 à 11:16
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)
0
yafee Messages postés 34 Date d'inscription lundi 27 décembre 2010 Statut Membre Dernière intervention 8 janvier 2011
28 mai 2009 à 10:37
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
0
yafee Messages postés 34 Date d'inscription lundi 27 décembre 2010 Statut Membre Dernière intervention 8 janvier 2011
28 mai 2009 à 14:55
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
0

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

Posez votre question
yafee Messages postés 34 Date d'inscription lundi 27 décembre 2010 Statut Membre Dernière intervention 8 janvier 2011
30 mai 2009 à 23:24
Génial sa marche
Merci beaucoup
0
Rejoignez-nous