Я пытаюсь экспортировать все таблицы в файле accdb в csv. Я нахожусь на этапе, когда я могу экспортировать таблицу, вызвав ее имя. К сожалению, мне нужно сделать это в тысячах файлов, где я не буду знать названия таблиц заранее.
Я уверен, что есть какой-то способ получить имя таблиц, а затем экспортировать их. У меня работает следующий код, чтобы экспортировать таблицу, называя ее имя "TableX"
output = os.path.join(r"C:\Users\user\Desktop", 'Output.csv')
# OPEN ACCESS APP AND DATABASE
oApp = win32com.client.Dispatch("Access.Application")
oApp.OpenCurrentDatabase(accdbfile)
# EXPORT TABLE TO CSV
acExportDelim = 2
oApp.DoCmd.TransferText(TransferType=acExportDelim,
SpecificationName=None,
TableName="TableX",
FileName=output,
HasFieldNames=True)
#
oApp.DoCmd.CloseDatabase
oApp.Quit
oApp = None
Используя команду DoCmd, я уверен, что есть такая, которая возвращает имена всех таблиц, которые я затем могу просто просмотреть. Но, к сожалению, я не могу найти способ получить это. Я знаю, что следующий код VBA работает в accdb для экспорта всех таблиц. Но не уверен, как интегрировать его с Python
Option Compare Database
Public Sub ExportAll()
Dim obj As AccessObject, dbs As Object
Set dbs = Application.CurrentData
In dbs.AllTables
If Left(obj.Name, 4) <> "MSys" Then
DoCmd.TransferText acExportDelim, , obj.Name, _
Application.CurrentProject.Path & "\" & obj.Name & ".csv", True
'DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, _
obj.Name, Application.CurrentProject.Path & "\" & obj.Name & ".xls", True
End If
Next obj
End Sub