我有一個Access數據庫,包含約30個表。如何將所有表從Access數據庫導出到Excel中 - 每個表的表格
如何將全部30個表格導出到Excel工作簿中的單獨工作表中?
我希望能找到一些VBA/VBS代碼,我可以從Access內運行來完成這項任務。
任何想法?
我有一個Access數據庫,包含約30個表。如何將所有表從Access數據庫導出到Excel中 - 每個表的表格
如何將全部30個表格導出到Excel工作簿中的單獨工作表中?
我希望能找到一些VBA/VBS代碼,我可以從Access內運行來完成這項任務。
任何想法?
你應該能夠做這樣的事情:
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 *」表丟失了。我感謝你的工作! – Huntdogg 2016-05-05 20:45:10
這是以上代碼的格式化和固定版本。 我們不需要excel文件中的MSys表格和表格名稱中的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
你嘗試過什麼了嗎? – Buggabill 2010-10-27 19:17:12