Remplir une ListBox Multicolonne Excel avec une base de données Access

pacoako

XLDnaute Occasionnel
Bonjour à vous Exceldownloadiens,

J'ai ici un semblant de code qui fonctionne presque.. en fait ça bloque ici : «ListBoxResultats = Array(ListeResultats)». J'obtient une erreur d'exécution « Impossible de définir la propriété Value. Le type ne correspond pas. Pourtant je sais qu'il y a des éléments dans mon Array, simplement en faisant un vérification avec une msgbox ListeResultats(x,y).

Quelqu'un a une idée pourquoi ça bug lors de l'affection de mon Array à la Listbox??? Merci de votre aide!

Code:
Dim RS As Recordset
Dim BDDPath As String
Dim SQLQuery As String
Dim ListeResultats As Variant
Dim NombreResultats As Integer


Private Sub CMDBRechercher_Click()

Dim m as Integer

BDDPath = ThisWorkbook.Path & "\BDDJuridique.mdb"
Set BDD = OpenDatabase(BDDPath, False, False, ";pwd=xxxx")
SQLQuery = "SELECT * FROM Juridique WHERE " & CBCritere1 & "= " & "'" & TBCritere1 & "'"
Set RS = BDD.OpenRecordset(SQLQuery)

RS.MoveLast
m = RS.RecordCount
RS.MoveFirst
ListeResultats = RS.GetRows(m)
ListBoxResultats = Array(ListeResultats)

End Sub
 
Dernière édition:

pacoako

XLDnaute Occasionnel
Re : Remplir une ListBox Multicolonne Excel avec une base de données Access

:DAHhh! Trouvé!

ListBoxResultats.list = Array(ListeResultats)

Mais la liste ne prend aucune valeur :( ,décidemment c'est pas ma journée! haha

Alors si quelqu'un a une idée... Merci de votre attention :D

=================================================================

ListBoxResultats.list = ListeResultats

Tout simplement, mais ma liste est dans le mauvais sens GrrrRRrr!. Semblerait que la fonction Getrows ne le permet pas autrement...

« Utilisez la méthode GetRows pour copier les enregistrements d'un objet Recordset. La méthode GetRows renvoie un tableau bidimensionnel. Le premier indice identifie le champ et le second, le numéro de ligne. Par exemple, intField représente le champ et intRecord identifie le numéro de ligne : »

Quelqu'un aurait une idée pour inverser mon tableau , pour que ma liste s'affiche dans l'autre sens...(une ligne par entrée et non pas une colonne pas entrée de données)
 
Dernière édition:

PMO2

XLDnaute Accro
Re : Remplir une ListBox Multicolonne Excel avec une base de données Access

Bonjour,

Essayez le code corrigé suivant

Code:
'#########################################
'### Référence : Library DAO
'### C:\Program Files\Fichiers communs\Microsoft Shared\DAO\dao360.dll
'### Microsoft DAO 3.6 Object Library
'##########################################
Dim BDD As DAO.Database
Dim RS As DAO.Recordset
Dim BDDPath As String
Dim SQLQuery As String
Dim ListeResultats As Variant
Dim NombreResultats As Integer

Private Sub CMDBRechercher_Click()

Dim m As Long 'et non pas Integer

BDDPath = ThisWorkbook.Path & "\BDDJuridique.mdb"
Set BDD = OpenDatabase(BDDPath, False, False, ";pwd=xxxx")
SQLQuery = "SELECT * FROM Juridique WHERE " & CBCritere1 & "= " & "'" & TBCritere1 & "'"
Set RS = BDD.OpenRecordset(SQLQuery)
RS.MoveLast
m = RS.RecordCount
RS.MoveFirst
ListeResultats = RS.GetRows(m)
With ListBoxResultats
  .ColumnCount = UBound(ListeResultats, 2) + 1
  .List() = Application.WorksheetFunction.Transpose(ListeResultats)
End With
End Sub

Cordialement.

PMO
Patrick Morange
 

Statistiques des forums

Discussions
312 281
Messages
2 086 752
Membres
103 387
dernier inscrit
Loloninho