Access - Exportación completa a Excel

 
Vista:
sin imagen de perfil

Exportación completa a Excel

Publicado por anonymous (78 intervenciones) el 17/10/2017 13:56:59
Buenas tardes;

Os realizo la siguiente pregunta: ¿Es posible realizar una exportación completa de una base de datos a un único fichero excel?

Es decir, si tengo cinco tablas, poder exportar esas cinco tablas al mismo fichero excel .

Muchas gracias y un cordial saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Exportación completa a Excel

Publicado por anonymous (78 intervenciones) el 17/10/2017 19:37:26
Buenas tardes Nsut;

Muchas gracias por la aclaración!!

Realizaré la consulta y luego revisare el enlace para realizar la exportación.

Muchas gracias por todo!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Exportación completa a Excel

Publicado por nsut (28 intervenciones) el 17/10/2017 23:20:54
Nada!

Para realizar la exportación utiliza la sentencia DoCmd.TransferSpreadsheet (Puedes crearte un botón, crear un evento "al hacer click" en él y, tras ello, darle al generador de código para pegar ahí la línea VBA)

Los argumentos vienen bastante bien explicados en el enlace que te dejo abajo:

http://web4x4.es/blog/index.php/exportar-de-access-a-excel-vba

Un saludo :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Exportación completa a Excel

Publicado por anonymous (78 intervenciones) el 18/10/2017 10:09:30
Buenos días Nsut,

Decirte que la primera opción que me comentaste, la del comando UNION, no funciona. Cuando aplico el código con las consultas y sus tablas correspondientes, me dice que se produce un error en el tiempo de ejecución. Por lo visto o no reconoce el comando o no lo estoy aplicando como debería.

Según entendí del enlace, el comando en si sería así: [Tabla_Sedes] ConsultaSedes UNION ALL [Tabla_Contactos] ConsultaContactos

Con la segunda opción, si que funciona, pero no como deseo. Me exporta la consulta que he hecho, pero lo envía todo a la misma hoja de excel y no por separado.

No se si es que estoy cometiendo errores sin darme cuenta o es que no es posible...

Espero que me puedas ayudar. Gracias por todo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Exportación completa a Excel

Publicado por nsut (28 intervenciones) el 19/10/2017 19:24:01
Buenas,

Soy más preciso. Suponiendo que cada tabla tiene un número X de campos y que hay Y tablas, la sentencia SQL que te lanza una consulta de unión de un número determinado de tablas es la siguiente:

SELECT [campo1tabla1], [campo2tabla1], [campo3tabla1], ... , [campoXtabla1] FROM tabla1
UNION
SELECT [campo1tabla2],[campo2tabla2],[campo3tabla2],..., [campoXtabla2] FROM tabla2
.
.
.
UNION
SELECT [campo1tablaY],[campo2tablaY],[campo3tablaY],...[campoXtablaY] FROM tablaY

Nota que tienes que poner el mismo número de campos entre los SELECT y el FROM porque le estás diciendo que, en la consulta, ponga los datos de [campo1tabla1] debajo de [campo1tabla2], los datos de [campo2tabla1] debajo de [campo2tabla2], etc.

Si deseas unir todos los campos de cada tabla, teniendo en cuenta lo dicho en el párrafo anterior, puedes simplificar la expresión de la siguiente forma:

SELECT * FROM tabla1
SELECT * FROM tabla2
.
.
.
SELECT * FROM tablaY

Respecto a la exportación, el comando DoCmd.TransferSpreadsheet (haciendo uso de la consulta de union anterior) te pondría todos los datos en una única hoja de excel. Si quieres que cada tabla aparezca en una hoja de un mismo libro excel, yo lo que haría sería añadir las librerías de excel y ADO al proyecto access, abriría un libro excel en blanco desde access, me llevaría las tablas a un recordset una a una e iría pegando en las pestañas (activandolas previamente según corresponda). Desconozco si hay un método más inmediato que ese para lo que quieres.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Exportación completa a Excel

Publicado por anonymous (78 intervenciones) el 20/10/2017 11:17:03
Buenos días Nsut,

Muchas gracias por explicarme el método... Sabía que algo estaba cometiendo mal.

En cuanto pueda probaré los métodos que me has indicado y si me vuelve a surgir alguna duda te comentaré.

Gracias por todo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Exportación completa a Excel

Publicado por anonymous (78 intervenciones) el 21/10/2017 13:50:39
Buenas tardes Nsut,

He encontrado una solución buscando intensamente en nuestro amigo Google y he encontrado una forma, mediante código VBA, de exportar todas las tablas a un fichero Excel y que estén separadas en diferentes hojas.

El código es el siguiente (Por si alguien le interesa):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Comando0_Click()
'Declaramos las variables
Dim miExcel As String
 
'Cogemos la ruta del Excel, nombre de archivo y extensión donde tienes la BD (Por ejemplo: miExcel = "D:\ExportarExcel.xls"
miExcel = "D:\ExportarExcel.xlsx"
 
'Exportamos los datos a Excel
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "Tabla1", miExcel
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "Tabla2", miExcel
........ RESTO DE TABLAS
 
'Lanzamos un mensaje de aviso
MsgBox "Exportación realizada correctamente", vbInformation, "OK"
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar