VBA Excel récupérer noms de tables Access

Résolu
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. 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
    1. 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
      1. 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
        1. de rien, n'oublie pas de cloturer ce post.
          0