[Access]Lister les enregistrements ds une Listbox

modjibe Messages postés 45 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 25 avril 2008 - 3 août 2007 à 10:58
erefdatacomputing Messages postés 165 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 24 avril 2018 - 3 août 2007 à 22:58
Salut,

Je voudrais lister dans une ListBox le contenu de la colonne "nom" de la table access "maTable". La dans ma boucle for each je parcours chaque colonne de la première ligne mais je voudrais parcourir toutes les lignes. Comment je peux faire. J'ai trituré ça dans tous les sens...

Dim Conn As ADODB.Connection
Dim rsT As ADODB.Recordset
Dim fd As ADODB.Field
Dim maTable As String
Set Conn = New ADODB.Connection
Set rsT = New ADODB.Recordset
maTable = "Ent"
With Conn
.Provider = "Microsoft.JET.OLEDB.4.0"
.Open "C:\Documents and Settings\Data.mdb"
End With
With rsT
.ActiveConnection = Conn
.Open maTable, LockType:=adLockOptimistic
End With
UserForm1.ListBox1.Clear
For Each fd In rsT.Fields
UserForm1.ListBox1.AddItem (rsT.Fields![Numero])
Next

Merci !

jb

5 réponses

modjibe Messages postés 45 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 25 avril 2008
3 août 2007 à 11:00
désolé pour la mise en page
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
3 août 2007 à 11:12
Salut,

Essaye comme ceci

With monRecordset
   If .RecordCount <> 0 Then
       .MoveFirst
       Do While Not .EOF
           talistbox.Additem .Fields(Numero)
          .MoveNext
       Loop
   End If
  .close
End With
0
erefdatacomputing Messages postés 165 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 24 avril 2018
3 août 2007 à 14:41
Salut !!

Ceci me semble plus simple ...........

 
                                                                                                                      EXPLICATIONS:
rsT.MoveFirst                             ' On va toujours au 1er des enregistrements avant de commencer une boucle.
Do While rsT.Eof=False              ' Tant qu'on est pas arrivé au dernier enregistrement de la table, tu fais ce qui suis, jusqu'à "Loop"
   ListBox1.AddItem rsT!nom     ' Ajoute à "ListBox1" ce qu'il y a dans la colonne "nom"   de l'enregistrement en cours.
   rsT.MoveNext                          ' Descend à l'enregistrement suivant, et recommence l'opération si nécessaire. 
Loop                                           ' Sortie de la boucle.

                                                                 'PS: la table ne doit pas être vide !!!!

Voilà ... si ça peut t'aider !!!

Je comprends vite mais il faut m'expliquer longtemps et tout en détails !!!
  
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
3 août 2007 à 14:59
Heuuu..Bah c'est exactement la même chose que ce que j'ai mentionné..
Le recordcount permet justement de tester si la table est vide et ensuite on se déplace sur le 1er enregistrement..
0

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

Posez votre question
erefdatacomputing Messages postés 165 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 24 avril 2018
3 août 2007 à 22:58
C'est exact   "LOLOKUN"   !!

MAIS:

1°)  Je n'ai pas dis "différent" .... mais "Plus simple ...".   (moins de lignes) 
2°)  Et n'oublie pas de mentionner qu'avant de faire un "RecordCount" il faut faire de préférence un "MoveLast", sinon VB risque de ne pas prendre en compte cette instruction.

voilà ....à+ 
Je comprends vite mais il faut m'expliquer longtemps et tout en détails !!!
0
Rejoignez-nous