2010-10-27 25 views

cevap

14

Böyle bir şey yapmak mümkün olmalıdır:

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

ikinci tbl.name çalışma sayfası adıdır.

8

Kullandığım tüm modül.

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

Bu benim için çok yardımcı oldu. Cevap kodu ile "Msys *" tablosunun eksik olduğunu söyleyen bir hatayla karşılaşıyordum. Çalışmanızı takdir ediyorum! – Huntdogg

3

Yukarıdaki kodun biçimlendirilmiş ve düzeltilmiş sürümü. Excel dosyalarında excel dosyası ve dbo öneki MSys tablolarına ihtiyacımız yok. Dışa aktarma, MS Access db'ye göre veya sabit olarak da yapılabilir.

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 
İlgili konular