Téléchargement
illégal
Posez votre question Signaler

VBA Excel récupérer noms de tables Access [Résolu]

guilja 4Messages postés 9 février 2005Date d'inscription - Dernière réponse le 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
Lire la suite 

VBA Excel récupérer noms de tables Access »

4 réponses
Réponse
+2
moins plus
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
Ajouter un commentaire
Réponse
+2
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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 :)
Ajouter un commentaire
Réponse
+0
moins plus
de rien, n'oublie pas de cloturer ce post.
Ajouter un commentaire
Ce document intitulé « VBA Excel récupérer noms de tables Access » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?