Remplir une listbox par les enregistrements d'une table.

faksouha Messages postés 63 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 4 mai 2011 - 10 mai 2007 à 19:06
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 - 19 mai 2007 à 11:31
bonjour;
je veux afficher les enregsitrement d'une table dans une listbox. voila le code que j'ai utilisé:

For i = 0 To Dtable.Rows.Count - 1
            a = Dtable.Rows(i).Item("num") & Dtable.Rows(i).Item("nom") & Dtable.Rows(i).Item("prenom") & Dtable.Rows(i).Item("sexe") & Dtable.Rows(i).Item("datenaissance") & Dtable.Rows(i).Item("num_mo") & Dtable.Rows(i).Item("note")
            ListBox1.Items.Add(a)
        Next

et ça marche bien. mais y'a t il une autre méthode plus courte, il me parrait pas évident d'écrire tous les champs ce cette façon!!. dans le cas d'une table à plusiers champs ça va etre ambéttant.

9 réponses

cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
11 mai 2007 à 08:26
Salut,

tu voudrais que ce code fonctionne pour tous les champs de la table, c'est ca ?
0
faksouha Messages postés 63 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 4 mai 2011
11 mai 2007 à 17:02
bonjour;
oui je veux afficher tous les champs d'une table dans une listbox.
le code marche bien, mais je me demande s'il n'ya pas autre méthode plus simple???


 
0
faksouha Messages postés 63 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 4 mai 2011
11 mai 2007 à 17:59
je sais pas si j'ai bien expliqué...
en fait je veux afficher dans une listbox tous les enregistrement d'une table (avec tous les champs).

dans mon code j'ai utilisé une boucle pour parcourir tous les enregistrements, mais les champs j'ai du les écrire un à un.

 
0
faksouha Messages postés 63 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 4 mai 2011
12 mai 2007 à 16:55
mais où sont les developpeurs????????y'a personne qui peut m'aider?
0

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

Posez votre question
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
14 mai 2007 à 09:01
Salut et desolé mais le vacances, c'est sacré.

Pour ton pb, je pense à ceci (c'est du VBA, alors à toi de convertir ce qui doit l'etre) :

Dim bdd As New ADOX.Catalog
Dim Tableau As ADOX.Table



Set bdd.ActiveConnection = Ta_connection

For Each Tableau In bdd.Tables
   msgbox Tableau.name
Next

Ce code te permet d'afficher le nom des champs de ta table. Si à la place du msgbox tu mets ta boucle For, ca devrait etre bon.

A+
0
faksouha Messages postés 63 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 4 mai 2011
14 mai 2007 à 12:04
bonjour;
merci je vais faire le test.

autre question.
dans mes codes je n'utilise que les requetes sql pour faire l'ajout, la modification la suppresion et la recherche des enregsitements. et je vois que c'est la meme méthode qui se répète à chaque fois, il n'a pas peut etre autre façon de faire que je connais pas?

merci d'avance.
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
14 mai 2007 à 12:21
Je n'ai pas bien compris ce que tu voulais optimiser exactement. A quel niveau ca se repete ?

Sinon, pour ta listbox; tu as regarder la méthode RowSource de cet objet ? Peut etre que ce serait plus rapide ?
0
faksouha Messages postés 63 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 4 mai 2011
18 mai 2007 à 18:26
bonsoir;
desolée pour ce retard....
tu voudrais bien dire utiliser la méthode datasource et non pas rowsource. mais ça marche pas j'ai cherché et je trouvé que la méthode que j'ai utilisé c'est la bonne.

merci beaucoup pour ton aide.
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
19 mai 2007 à 11:31
Salut, en fait pour faire ca direct, il te suffit de relier mon code et le tien

Dim bdd As New ADOX.Catalog
Dim Tableau As ADOX.Table
Dim i as integer
Dim str as String

Set bdd.ActiveConnection = Ta_connection

For i = 0 To Dtable.Rows.Count - 1    'pour chaque enregistrement
    For Each Tableau In bdd.Tables    'Pour chaque champ
        a = a & "    " & Dtable.Rows(i).Item(Tableau.name)
    Next
    ListBox1.Items.Add(a)  
Next
0
Rejoignez-nous