remplir listbox 2 cols via Access/ADO

  • Initiateur de la discussion daniel
  • Date de début
D

daniel

Guest
Bonsoir le forum,

Je découvre peu à peu les connexions ADO et j'ai un peu de mal avec le problème suivantes : je voudrais extraire d'une table access les valeurs de deux champs d'une table pour en remplir les deux colonnes d'une listbox sur un userform. J'ai réussi à remplir une colonne mais pas la deuxième...Pouve-vous m'aider ?

Ci dessous le code que j'ai bidouillé pour la récupération d'un seul champ, passé en critère.


Code:
Sub AfficherFenetreConsultation(table, field)
Dim Enregistrements As ADODB.Recordset
Dim ConnectionADO As String
Dim InstructionSQL As String
Dim critere As String

With fmConsultation
.ListBox1.Clear
critere = ''


' Crée la chaine de connexion
ConnectionADO = 'Provider=Microsoft.Jet.OLEDB.4.0;' & 'Data Source= ' & ActiveWorkbook.Path & '\\' & 'Docubase.mdb'
 
' Crée l'instruction SQL


        InstructionSQL = 'SELECT Contacts.* FROM Contacts ' & 'WHERE (((Contacts.Trigramme) Like '%' & critere & '%'))'

 ' Crée l'objet Recordset et exécute la requête
     

     Set Enregistrements = New ADODB.Recordset
     Enregistrements.Open InstructionSQL, ConnectionADO, adLockReadOnly, adLockReadOnly, adCmdText

     ' On s'assure qu'il y a des enregistrements à récupérer ...
     If Not Enregistrements.EOF Then
    Do While Not Enregistrements.EOF
   .ListBox1.AddItem Enregistrements.Fields(field)
    Enregistrements.MoveNext
    Loop
    End If

     ' Ferme le jeu d'enregistrements s'il est toujours ouvert ...

     If CBool(Enregistrements.State And adStateOpen) Then Enregistrements.Close

     Set Enregistrements = Nothing
.Caption = 'Table des ' & UCase(table)
.Show
End With
end sub

Bonne soirée à toutes et tous :)
 

michel_m

XLDnaute Accro
Bonsoir Daniel et le forum

Ci dessous extrait d'une solution avec tableau intermédiaire élaborée avec Michel XLD pour une listbox à 3 colonnes:
...
With requete
.MoveFirst
Do While Not .EOF
Tableau(0, X) = .Fields(0)
Tableau(1, X) = .Fields(1)
Tableau(2, X) = .Fields(2)
X = X + 1
ReDim Preserve Tableau(2, X)
.MoveNext
Loop
End With

' -------------------- affectations des valeurs du tableau à la liste de données (Michel_xld)
Me.LbxDonnees.Column() = Tableau
...
A toi d'adapter à ton pb!

A propos d'ADO, tu trouveras dans le WIKI d'XLd des tas de démos dans la page 6 du Wiki de MichelXLD

A+
Michel_M
 
D

daniel

Guest
Bonsoir Michel,

Merci de ton aide, je pense que j'arriverais à m'en sortir avec un peu de ténacité :) En attendant une réponse à mon problème, je suis allé voir les pages du Wiki dont tu parles et téléchargé quelques exemples...Je suis bluffé !! La route est longue qui me verra tteindre la 'maîtrise' d'ADO !!

Bonne soirée et encore merci pour ton aide

Daniel
 
A

Abed_H

Guest
Code:
Bonsoir,

With Enregistrements
    Do While Not .EOF
         Champ1 = .Fields!Nom_de_premier_champ
         Champ2 = .Fields!Nom_de_deuxieme_champ
          .ListBox1.AddItem Champ1 & ' ' & Champ2
          .MoveNext
    Loop
 End With[code]
 

Discussions similaires

Réponses
13
Affichages
875

Statistiques des forums

Discussions
312 305
Messages
2 087 081
Membres
103 457
dernier inscrit
fab2614