Récupération liste tableau Access
S
Bonjour à tous,
Ma mission d'aujourd'hui consiste en la récupération de la liste des table d'un fichier Access à partir d'Excel.
Nous ne possédons aucune licence Access et devons nous débrouiller avec Excel pour seul chemin d'accès.
Le travail est le suivant :
- Je possède un fichier Access => progamm.mdb
- Sur ce fichier est enregistré la liste des programmes d'une machine outil de l'atelier. Chaque programme est représenté par deux tableaux avec un code de référencement.
- Je possède actuellement un programme VBA qui va chercher une table sur le fichier Access :
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array( _
"OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=Y:\Cintreuse\StarBend\Data\programm.mdb;Mode=Share Deny " _
, _
"Write;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:En" _
, _
"gine Type=5;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB" _
, _
":New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on" _
, _
" Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False;Jet OLEDB" _
, ":Bypass UserInfo Validation=False"), Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdTable
.CommandText = Array("1COUDEB2")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceDataFile = "Y:\Cintreuse\StarBend\Data\programm.mdb"
.ListObject.DisplayName = "Tableau_programm_1"
.Refresh BackgroundQuery:=False
End With- Il s'agit d'un enregistrement de macro d'une action faite à la main. Le code ci dessus ce connecte à la feuille et fait appel directement au programme choisis.
- Je pourrais demander à l'utilisateur de la feuille d'entrer manuellement le n° du programme mais il faudrait recopier chaque programmes sur une feuille.
.CommandType = xlCmdTable
.CommandText = Array("1COUDEB2")Est-il possible d'avoir la liste des Tableaux du fichier Access sur Excel ?
Invité
Bonjour,
Tiens, c'est cadô : un outil avec lequel on pointe sur une base mdb ou accdb quelconque et qui récupère les tables, leurs structures et les contenus.
Le code est ouvert et modifiable facilement
Pierre
S
Merci beaucoup !
C'est impeccable !
Je vais l'étudier en détail le code afin de comprendre comment il fonctionne et ajouter ma partie.