开发者

How to export all tables from an Access Database into Excel - A sheet for each table

I have an Access database with ~30 tables.

How can I export all 30 tables into separate sheets in an Excel workbook?

开发者_运维百科I'm hoping to find some VBA/VBS code which I can run from within Access to accomplish this task.

Any ideas?


You should be able to do something like this:

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

The second tbl.name is the worksheet name.


Here's the full module I used.

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


Here is formated and fixed version of above code. We don't need MSys tables in excel file and dbo prefix in sheet names. Export also can be made relative to MS Access db or fixed.

Here is code:

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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜