Получение данных из Access to Excel VBA sheets name

#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.