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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| Option Explicit
Sub AfficheBDD()
Dim MaColonne As String
Dim MaTable As String
Dim Resultat As ADODB.Recordset
Dim MaRequete As String
Dim i As Integer
'vide les cellules
Cells.ClearContents
MaColonne = "Référence" & ", Valeur" & ", Désignation"
MaTable = "Essai"
MaRequete = " SELECT " & MaColonne & " FROM " & MaTable
Set Resultat = MakeRequete(MaRequete)
i = 1
Cells(i, 1).Value = "Référence"
Cells(i, 2).Value = "Valeur"
Cells(i, 3).Value = "Désignation"
MsgBox Resultat.RecordCount
'initialise le pointeur (peut éviter certains bug)
Resultat.MoveLast
Resultat.MoveFirst
Do Until (Resultat.EOF)
i = i + 1
Cells(i, 1).Value = Resultat("Référence")
Cells(i, 2).Value = Resultat("Valeur")
Cells(i, 3).Value = Resultat("Désignation")
Resultat.MoveNext
Loop
'Autre méthode
'Dim Element As Variant
'For Each Element In Resultat.Fields
' i = i + 1
' Cells(i, 1).Value = Element
'Next Element
'Resultat.FindFirst ("Référence = 'Ref1'")
Resultat.Close
End Sub
Function ConnexionBase(ConnectStr As String) As ADODB.Connection
Set ConnexionBase = New ADODB.Connection
'Définition du pilote de connexion
ConnexionBase.Provider = "Microsoft.Jet.Oledb.4.0"
'Définition de la chaîne de connexion : chemin complet du .mdb
ConnexionBase.ConnectionString = ConnectStr
'Ouverture de la base de données
ConnexionBase.Open "Data Source=" & ConnectStr
End Function
Function MakeRequete(Requete As String) As ADODB.Recordset
Dim cnx As ADODB.Connection
'Ouvre la BDD
Set cnx = ConnexionBase("c:\echange\bd1.mdb")
'Défini la variable
Set MakeRequete = New ADODB.Recordset
'Exécute la requête
MakeRequete.Open Requete, cnx
End Function |