Как экспортировать все таблицы из базы данных 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