VBA Excel récupérer noms de tables Access
Résolu
guilja
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
guilja Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
guilja Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
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
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:
- VBA Excel récupérer noms de tables Access
- Liste déroulante excel - Guide
- Recuperer message whatsapp supprimé - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
4 réponses
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
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
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
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