2010-10-27 24 views

回答

14

你應該能夠做這樣的事情:

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

第二tbl.name是工作表的名稱。

8

這是我使用的完整模塊。

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 
+0

這對我很有幫助。我收到一個錯誤消息,告訴我一個「Msys *」表丟失了。我感謝你的工作! – Huntdogg 2016-05-05 20:45:10

3

這是以上代碼的格式化和固定版本。 我們不需要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 
相關問題