Microsoft 365 Récupérer le nom des tables d'unebase de données access

José77

XLDnaute Occasionnel
Bonjour,
je souhairerai lister les noms des tables d'une base Access composant la base de données.
Je précise que je travaille avec ADO.
Je vous remercie par avance.
José
 

p56

XLDnaute Occasionnel
Bonjour,
Voici un exemple
VB:
Sub lister_tables_Access()
' Auteur : Pierre - P56 - http://tatiak.canalblog.com/
Dim BDD As String, lg As Integer
Dim Cnx As Object, Cat As Object, Tbl As Object

    BDD = "F:\... chemin ...\BaseAccess.accdb"

    Set Cnx = CreateObject("ADODB.Connection")
    Cnx.Open "DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=" & BDD
    
    Set Cat = CreateObject("ADOX.Catalog")
    Set Cat.activeconnection = Cnx
    
    lg = 2
    For Each Tbl In Cat.Tables
        If Tbl.Type = "TABLE" Then
            ActiveSheet.Cells(lg, 1).Value = Tbl.Name
            lg = lg + 1
        End If
    Next
    
    Cnx.Close
    Set Cnx = Nothing
    Set Cat = Nothing
    Set Tbl = Nothing

End Sub
P.
 

José77

XLDnaute Occasionnel
Bonjour,
Voici un exemple
VB:
Sub lister_tables_Access()
' Auteur : Pierre - P56 - http://tatiak.canalblog.com/
Dim BDD As String, lg As Integer
Dim Cnx As Object, Cat As Object, Tbl As Object

    BDD = "F:\... chemin ...\BaseAccess.accdb"

    Set Cnx = CreateObject("ADODB.Connection")
    Cnx.Open "DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=" & BDD
   
    Set Cat = CreateObject("ADOX.Catalog")
    Set Cat.activeconnection = Cnx
   
    lg = 2
    For Each Tbl In Cat.Tables
        If Tbl.Type = "TABLE" Then
            ActiveSheet.Cells(lg, 1).Value = Tbl.Name
            lg = lg + 1
        End If
    Next
   
    Cnx.Close
    Set Cnx = Nothing
    Set Cat = Nothing
    Set Tbl = Nothing

End Sub
P.
Merci beaucoup. Tout fonctionne parfaitement. Maintenant il ne me reste plus qu'à comprendre ce code.
 

Discussions similaires

Réponses
1
Affichages
119
Réponses
0
Affichages
228

Statistiques des forums

Discussions
312 207
Messages
2 086 247
Membres
103 163
dernier inscrit
Pelaez