2015-04-01

Exportar todas las tablas de Access

Title Si deseamos exportar todas las tablas de un fichero de Access a un fichero de Excel empleamos una de las siguientes subrutinas:

A un fichero XLS

Sub ExportarTablas()

Dim tbl As TableDef
For Each tbl In CurrentDb.TableDefs
    If Left(tbl.Name, 4) <> "msys" Then
      DoCmd.TransferSpreadsheet acExport, 8, tbl.Name, _
      CurrentProject.path & "\Tablas.xls", True, tbl.Name
    End If
Next

End Sub

A un fichero XLSX

Sub ExportarTablas()

Dim tbl As TableDef
For Each tbl In CurrentDb.TableDefs
    If Left(tbl.Name, 4) <> "msys" Then
      DoCmd.TransferSpreadsheet acExport, 10, tbl.Name, _
      CurrentProject.path & "\Tablas.xlsx", True, tbl.Name
    End If
Next

End Sub

Notas

Ambas subrutinas crearán o sobrescribirán, si ya existe, en la ruta del fichero Access un fichero llamado Tablas.xls o Tablas.xlsx que contendrá todas las tablas del mismo.

La principal diferencia observable entre ambas extensiones, XLS (Excel 2000 format) y XLSX (Excel 2010 format), será que el fichero XLSX al ser un fichero comprimido tendrá un tamaño menor. Además al exportar desde Access como XLS el tipo de letra por defecto será MS Sans Serif, mientras que como XLSX emplearé el tipo de letra por defecto de Excel (Calibri en este caso).

Con anterioridad vimos cómo exportar una tabla o consulta de Access como CSV. Para exportar como un fichero de Excel la sintaxis es prácticamente idéntica, salvo que en ahora emplearemos DoCmd.TransferSpreadsheet en lugar de DoCmd.TransferText. Hay numerosos códigos en la red muy similares. Empleamos un bucle por todas las tablas de Access, introducimos un condición —if...then— para que compruebe si el nombre de la tabla comienza por MSys (MSysObjects tables) pues al intentar exportar estas tablas del sistema, el código arrojaría el siguiente error.

Referencias

No hay comentarios:

Publicar un comentario

Nube de datos