2010-10-27 15 views

Respuesta

14

Usted debe ser capaz de hacer algo como esto:

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

El segundo tbl.name es el nombre de la hoja.

8

Aquí está el módulo completo que utilicé.

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

Esto fue muy útil para mí. Me estaba dando un error con el código de respuesta que me decía que faltaba una tabla "Msys *". ¡Aprecio tu trabajo! – Huntdogg

3

Aquí está la versión formateada y arreglada del código anterior. No necesitamos tablas MSys en el archivo Excel y el prefijo dbo en los nombres de las hojas. Exportar también se puede hacer en relación con MS Access db o arreglado.

Aquí es código:

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 
Cuestiones relacionadas