2009-12-04 48 views
16

Tengo dos tablas en mi base de datos de acceso que quiero poder exportar a excel.Exportación MS tablas de acceso a través de VBA a una hoja de cálculo de Excel en el mismo directorio

Puedo hacerlo abriendo la tabla y luego haciendo Archivo-> Exportar ... y luego seleccionando el formato y escribiendo el nombre del archivo.

Sin embargo, de esta manera, el usuario tiene que escribir el nombre, por lo que hay espacio para desvincular el archivo o guardarlo como el formato incorrecto o en la ubicación incorrecta. Además, las dos tablas deben exportarse a dos libros de trabajo separados.

Lo que quiero ser capaz de hacer es hacer un botón en un formulario que exporta automáticamente una tabla a una hoja de cálculo y el otro a otra hoja de cálculo, tanto en el mismo libro de Excel .

Si no es posible ponerlos en el mismo libro de trabajo, está bien. Solo quiero que se exporten automáticamente al mismo directorio en el que está guardada mi base de datos de acceso.

Si sabe cómo hacerlo, una ventaja adicional podría ser personalizar el nombre para incluir la fecha. De esa forma, el directorio también tendría exportaciones históricas. ¿Algún consejo?

Respuesta

32

Puede usar VBA para exportar una tabla de base de datos de Access como una Hoja de trabajo en un Libro de Excel.

Para obtener la ruta de acceso de la base de datos, use la propiedad CurrentProject.Path.

Para nombrar el archivo de libro de Excel con la fecha actual, use el método Format(Date, "yyyyMMdd").

Finalmente, para exportar la tabla como una Hoja de trabajo, use el método DoCmd.TransferSpreadsheet.

Ejemplo:

Dim outputFileName As String 
outputFileName = CurrentProject.Path & "\Export_" & Format(Date, "yyyyMMdd") & ".xls" 
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Table1", outputFileName , True 
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Table2", outputFileName , True 

Esta salida voluntad tanto Tabla1 y Tabla2 en el mismo libro.

HTH

+0

Eso funcionó muy bien, pero ¿cómo lo obligo a exportar a CurrentProject.Path? – Matt

+3

outputFileName = CurrentProject.Path & "\ Export_" & Format (Date, "YYYYDDmm") & ".xls" – Fionnuala

+1

En el código ofrecido, lo fuerza a guardar el archivo en la ruta actual incluyendo la ruta cuando asigna el valor a la variable outputFileName. Es decir, pegar CurrentProject.Path entre el = y el "y poner un \ después de la cotización (CurrentProject.Path omite la barra diagonal) –

-4

Para las personas que encuentran esto a través de los motores de búsqueda, no necesita VBA. Usted puede simplemente:

1.) select the query or table with your mouse 
2.) click export data from the ribbon 
3.) click excel from the export subgroup 
4.) follow the wizard to select the output file and location. 
+0

Esta no es una solución válida si está entregando esto como una aplicación de usuario final/sistema de informes – MattE

Cuestiones relacionadas