我从访问数据库中获取表/表的名称时遇到了问题。
我想这是因为函数 opendatabase 。当我使用这个方法时,我得到一个文件名作为输出的工作表对象。
我不知道如何从此访问文件中获取正在加载的表的名称。此程序的目的是将所有表的名称从访问文件到Excel文件。
Sub CleanGoodVersion()
GetDataFromETAPWorkbook = ActiveWorkbook.Name
selection_dossier = ""
Dim NameOfSheet As String
Dim directory As String
directory = Range("C6").Text
ActiveSheet.Range("L2:L500").Select
Selection.ClearContents
For compteur = 1 To Sheets("Feuil1").Range("C7").Value Step 1
selection_dossier = selection_dossier & "{down},"
SendKeys selection_dossier & "{enter}", False
Workbooks.OpenDatabase (directory)
DatebaseWorkbook = ActiveWorkbook.Name '
NameOfSheet = ActiveSheet.Name
' copy table from database
'toto.Select ' it' s for check out names of files
Workbooks(DatebaseWorkbook).Activate
Cells(1, 1).Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
....................
Application.DisplayAlerts = False
Workbooks(DatebaseWorkbook).Close
SaveChanges = True
Next compteur
End Sub
答案 0 :(得分:0)
不确定这个是否可以完成OpenDatabase,但如果可以,那么它可能是这样的:
Workbooks.OpenDatabase Filename:="yourAccessDB.mdb", _
CommandText:="Select s.Name From MSySObjects As s Where s.Type=1", _
CommandType:=xlCmdSql, _
BackgroundQuery:=False, _
ImportDataAs:=xlQuery
我现在无法测试它,但是,如果这样做,那么它应该返回一个包含Access MDB中所有表名的工作簿。