VBA Excel récupérer noms de tables Access

Résolu
guilja Messages postés 4 Statut Membre -  
guilja Messages postés 4 Statut Membre -
Bonjour à tous,

je souhaite sous Excel et à l'aide de VBA, faire (dans un premier temps) un petit Userform pour extraire les données d'une base access.

(1) Un premier bouton me permet d'aller choisir mon fichier *.mbd (ma base).
(2) Suite à ça, j'aimerai avoir dans une combobox la liste des différentes tables de cette base.
(3) Enfin, une deuxième combobox me permet de lister la colonne que je souhaite extraire.

Actuellement, j'arrive à faire 1 et 3. Je fais 3 avec une requête avec le nom de la base entrée manuellement (pas classe !).

Je cherche mais en vain... (je trouve des fonctions VBA mais pour ACCESS : DAO, que VBA Excel ne comprend pas...)

A l'aide :)

Merci pour vos réponses, pistes !

Guilja
Configuration: Windows Vista
Internet Explorer 7.0
Office 2003

4 réponses

  1. guilja Messages postés 4 Statut Membre 4
     
    Merci encore, ça marche super !!!
    j'ajoute le code pour mon étape suivante : à savoir récupérer le nom des colonnes dans la table access définie par le code de yakov:

    Sub Tables()

    'référencer la Microsoft DAO library :
    'Dans VBA : Outils\Références\Microsoft DAO 3.6 Object Library

    Dim bdd As DAO.Database
    Dim tbd As DAO.TableDef

    Set bdd = OpenDatabase(Formulaire.chemin.Text)

    For Each tbd In bdd.TableDefs
    'ChoixTable est une combobox
    Formulaire.ChoixTable.AddItem tbd.Name
    Next

    bdd.Close
    Set bdd = Nothing
    Set tbd = Nothing
    End Sub

    -------------------------------------------
    Sub Parametres()

    'référencer la Microsoft DAO library :
    'Dans VBA : Outils\Références\Microsoft DAO 3.6 Object Library

    Dim bdd As DAO.Database
    Dim tbd As DAO.TableDef
    Dim pbd As DAO.Field

    Set bdd = OpenDatabase(Formulaire.chemin.Text)
    Set tbd = bdd.TableDefs(Formulaire.ChoixTable.Text)

    For Each pbd In tbd.Fields
    'ChoixParametre est une combobox
    Formulaire.ChoixParametre.AddItem pbd.Name
    Next

    bdd.Close
    Set bdd = Nothing
    Set tbd = Nothing
    Set pdb = Nothing
    End Sub

    merci encore !
    Guilja
    4
  2. yakov Messages postés 115 Statut Membre 77
     
    ce petit code te permet de lister l'ensemble des tables d'une BDD en fonction de son fichier (la variable chemin).
    tu peux adapter cela pour récupérer les données dans un combo
    j'espère t'avoir aidé...
    Remarque : il faut référencer la Microsoft DAO library bien sur

    Public Sub LISTE_TABLES(ByVal chemin As String)
    Dim bdd As DAO.Database
    Dim tbd As DAO.TableDef
    Set bdd = OpenDatabase(chemin)
    For Each tbd In bdd.TableDefs
    Debug.Print tbd.Name
    Next
    bdd.Close
    Set bdd = Nothing
    Set tbd = Nothing
    End Sub
    3
  3. guilja Messages postés 4 Statut Membre 4
     
    Ca marche !!!!
    Super merci !!
    Merci beaucoup :')
    je vais en profiter pour adapter ce code pour le nom des colonnes, une fois la table sélectionnée...

    Merci encore :)
    0
  4. yakov Messages postés 115 Statut Membre 77
     
    de rien, n'oublie pas de cloturer ce post.
    0