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.
Bonne soirée à toutes et tous
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