Bonjour.

Je souhaiterais récupérer des enregistrements sur base de données SQL et les insérer dans une listbox de plusieurs colonnes.
Etant débutant en VBA, j'ai du mal a élaborer le code qui me conviendrait.
J'ai une table contenant 42 colonnes, et une listbox de 43 colonnes (pour compter le nombre d'enregistrement)

Mon code actuel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Dim req1 As String, req2 As String
Dim nbreg As Integer
Dim i As Integer, j As Integer
Dim connect As Boolean
Dim rs1 As New ADODB.Recordset, rs2 As New ADODB.Recordset
Dim tab1(41) As String
 
 
 
Private Sub CommandButton1_Click()
UserForm4.ListBox1.ColumnCount = 43
req1 = "SELECT count(*) from [" & TL2 & "] ;"
With rs1
        .CursorLocation = adUseServer           'curseur coté serveur
        .CursorType = adOpenForwardOnly         'type de curseur
        .LockType = adLockReadOnly              'option de curseur 
        .Open req1, cnx, adOpenStatic           'exécution de la requête SQL
        nbreg = .Fields(0).Value                 'récupération de l'enregistrement 
        .Close
        End With
 
req2 = "select * from [" & TL2 & "]"
With rs2
        .CursorLocation = adUseServer           'curseur coté serveur
        .CursorType = adOpenForwardOnly         'type de curseur
        .LockType = adLockReadOnly              'option de curseur 
        .Open req2, cnx, adOpenStatic            'exécution de la requête SQL
        For i = 1 To (nbreg)
        UserForm4.ListBox1.AddItem "N°" & i
        For j = 0 To 41
        tab1(j) = .Fields(j).Value                 'récupération de l'enregistrement 
        UserForm4.ListBox1.List(i - 1, j + 1) = tab1(j)
        Next j
        Next i
        .Close
        End With
End Sub
Mon problème se situe au niveau de la récupération des données.
Le premier hic est que j'ai pu constater avec l'aide d'une msgbox que tab1() n'enregistre que la première ligne de la table SQL.
=> Comment puis-je récupérer l'ensemble des données de la table? (j'ai pensé à un tableau à deux dimensions, mais je ne sais pas comment le mettre en oeuvre avec le recordset)

Ensuite, la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
UserForm4.ListBox1.List(i - 1, j + 1) = tab1(j)
me retourne l'erreur "Invalid property value", et je ne sais pas trop à quoi elle correspond :s
(je soupsonne également req2 de ne pas être la meilleure solution.)

Toute aide étant la bienvenue, merci d'avance