#vba #excel #ms-access
#vba #excel #ms-access
Вопрос:
У меня проблема с получением имен таблиц / листов из базы данных access.
Я думаю, это из-за функции opendatabase. Когда я использую этот метод, я получаю объект worksheet с именем файла в качестве выходных данных.
Я не знаю, как получить имя таблицы, которую я загружаю из этого файла access. Цель этой программы — получить все таблицы со своими именами из файла access в файл 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 amp; "{down},"
SendKeys selection_dossier amp; "{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
Ответ №1:
Не уверен, что это можно сделать с помощью 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.