VBA Excel récupérer noms de tables Access

Résolu/Fermé
guilja Messages postés 4 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 25 août 2008 - 24 août 2008 à 12:21
guilja Messages postés 4 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 25 août 2008 - 25 août 2008 à 07:34
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
A voir également:

4 réponses

guilja Messages postés 4 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 25 août 2008 4
25 août 2008 à 07:34
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
yakov Messages postés 113 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 13 juin 2009 75
24 août 2008 à 16:33
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
guilja Messages postés 4 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 25 août 2008 4
24 août 2008 à 17:41
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
yakov Messages postés 113 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 13 juin 2009 75
24 août 2008 à 18:37
de rien, n'oublie pas de cloturer ce post.
0