Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

  • Initiateur de la discussion Initiateur de la discussion pacoako
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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:
Re : Remplir une ListBox Multicolonne Excel avec une base de données Access

😀AHhh! 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 😀

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

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:
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…