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

XL 2013 [VBA] Lister les noms des tables et requêtes Access sous Excel

ralph45

XLDnaute Impliqué
Bonsoir le Forum,

Débutant sous Acces et ayant récupéré une base de données assez conséquente avec des dizaines de tables et des centaines de requêtes, je voulais me faire un mode d'emploi tout en générant des sortes d'index et quoi correspond à quoi ou comment...

D'où ma question du jour : est-il possible de lister sous Excel les noms de ces tables et requêtes ou d'exporter depuis Access sous Excel ceux-ci ?
Attention, je ne parle pas d'exporter d'Access ou d'importer d'Excel les tables et requêtes, mais seulement leurs noms...

Merci de vo.tre.s retour.s. et bonne soirée !
 

dysorthographie

XLDnaute Accro
Bonjour,
VB:
Sub TEST()
Dim cn As Object, tbl As Variant
Set cn = CreateObject("Adodb.connection")
With cn
    .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Environ("UserProfile") & "\Documents\Database1.accdb;"
    tbl = TableToutes(cn)
    .Close
End With
 For Each t In tbl
    Debug.Print t
 Next
End Sub
Public Property Get TableToutes(Connexion As Object)
Dim t() As String, i As Integer
TableToutes = False
With Connexion.OpenSchema(20)
    While Not .EOF
        ReDim Preserve t(i)
        t(i) = !TABLE_NAME
        i = i + 1
        .MoveNext
    Wend
    .Close
    TableToutes = t
End With
End Property
 

ralph45

XLDnaute Impliqué
Bonsoir Dysorthographie,

Je vais tester ce code demain, qui me semble bien.
Apparemment, il ne devrait me me lister uniquement les noms des tables (et non les noms des requêtes) ?

Encore merci !
 

dysorthographie

XLDnaute Accro
Une requête est vue comme une table, donc cette propriété liste invariablement les tables et les requêtes.
Code:
SQL="Select * Fom requête"
SQL="Select * Fom table"

Notes également les table système sont également listées.
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…