Как экспортировать все таблицы из базы данных Access в Excel - лист для каждой таблицы

У меня есть база данных Access с ~30 таблиц.

как экспортировать все 30 таблиц в отдельные листы в книге Excel?

Я надеюсь найти код VBA/VBS, который я могу запустить из Access для выполнения этой задачи.

какие идеи?

3 ответов


вы должны быть в состоянии сделать что-то вроде этого:

Dim tbl as Tabledef
For Each tbl in Currentdb.TableDefs
  DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, tbl.name, "PathName.xls", True, tbl.name
Next

второй tbl.name - это имя листа.


вот полный модуль, который я использовал.

Sub expotT()
 Dim td As DAO.TableDef, db As DAO.Database
 Set db = CurrentDb()
 For Each td In db.TableDefs
    If Left(td.Name, 4) <> "msys" Then
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, _
    td.Name, "C:\xExcelTables.xls", True, td.Name
    End If 
Next
End Sub

здесь сформированная и исправленная версия вышеуказанного кода. Нам не нужны таблицы MSys в файле excel и префикс dbo в именах листов. Экспорт также может быть выполнен относительно БД MS Access или исправлен.

вот код:

Sub exportTables2XLS()
Dim td As DAO.TableDef, db As DAO.Database
Dim out_file As String

out_file = CurrentProject.path & "\excel_out.xls" 

Set db = CurrentDb()
   For Each td In db.TableDefs
     If Left(td.Name, 4) = "MSys" Then
     '// do nothing -- skip
   Else
     DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, _
     td.Name, out_file, True, Replace(td.Name, "dbo_", "")
   End If 
   Next
End Sub