Access - exportar un informe a excell

 
Vista:

exportar un informe a excell

Publicado por JULIA (2 intervenciones) el 08/12/2006 22:58:34
Hola, necesito ayuda sobre este tema
He creado una base de datos y luego una consulta donde separo solo los campos que contengan la condiciona mc, otra consulta donde solo tengal rd ,ect y luego he creado los informes para cada consulta.
Una vez visto el informe lo exporto a excell cada uno.
Me gustaria saber si es posible exportar las tres consultas a la vez y que en excell se carge cada información en una pestaña de la hoja excell. Es decir una pestaña con la mc otra pestaña con la rd, ect...
Agradeceria la ayuda, pues ultimamente lo hago uno a uno

Muchas gracias y saludos-Julia
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
Imágen de perfil de Alejandro

Cómo exportar múltiples consultas a hojas de Excel separadas

Publicado por Alejandro (4142 intervenciones) el 31/07/2023 19:48:24
Sí, es posible exportar las tres consultas a hojas de Excel separadas en una sola operación. Para lograrlo, puedes utilizar VBA (Visual Basic for Applications) para automatizar el proceso de exportación. A continuación, te proporciono un ejemplo de cómo hacerlo:

1. Abre tu base de datos de Access y presiona Alt + F11 para abrir el editor de VBA.

2. En el editor de VBA, inserta un nuevo módulo haciendo clic en "Insertar" y luego selecciona "Módulo".

3. En el módulo, agrega el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Sub ExportarConsultasAExcel()
    Dim db As Database
    Dim qdf As QueryDef
    Dim rst As Recordset
    Dim excelApp As Object ' Se crea un objeto genérico para manejar Excel
    Dim excelWorkbook As Object ' Se crea un objeto genérico para el libro de Excel
    Dim excelWorksheet As Object ' Se crea un objeto genérico para las hojas de Excel
    Dim consulta As String
    Dim nombreHoja As String
 
    Set db = CurrentDb
    Set excelApp = CreateObject("Excel.Application")
    excelApp.Visible = True ' Opcional: Para ver el proceso en Excel
 
    ' Consulta 1 - MC
    consulta = "SELECT * FROM NombreTabla WHERE CampoCondicion = 'mc'"
    nombreHoja = "MC"
    Set rst = db.OpenRecordset(consulta)
    Set excelWorkbook = excelApp.Workbooks.Add
    Set excelWorksheet = excelWorkbook.Sheets(1)
    excelWorksheet.Name = nombreHoja
    excelWorksheet.Range("A1").CopyFromRecordset rst
    rst.Close
 
    ' Consulta 2 - RD, ECT, etc.
    consulta = "SELECT * FROM NombreTabla WHERE CampoCondicion IN ('rd', 'ect', ...)"
    nombreHoja = "RD_ECT_etc"
    Set rst = db.OpenRecordset(consulta)
    Set excelWorksheet = excelWorkbook.Sheets.Add(, excelWorkbook.Sheets(excelWorkbook.Sheets.Count))
    excelWorksheet.Name = nombreHoja
    excelWorksheet.Range("A1").CopyFromRecordset rst
    rst.Close
 
    ' Consulta 3 - Otra consulta
    consulta = "SELECT * FROM OtraTabla WHERE CampoCondicion = 'OtroValor'"
    nombreHoja = "OtraConsulta"
    Set rst = db.OpenRecordset(consulta)
    Set excelWorksheet = excelWorkbook.Sheets.Add(, excelWorkbook.Sheets(excelWorkbook.Sheets.Count))
    excelWorksheet.Name = nombreHoja
    excelWorksheet.Range("A1").CopyFromRecordset rst
    rst.Close
 
    excelApp.DisplayAlerts = False ' Para evitar mensaje de confirmación de reemplazo si existe el archivo
    excelWorkbook.SaveAs "C:\Ruta\TuArchivo.xlsx" ' Ruta y nombre del archivo de Excel
    excelWorkbook.Close
    excelApp.DisplayAlerts = True ' Vuelve a mostrar mensajes de alerta
 
    Set rst = Nothing
    Set qdf = Nothing
    Set db = Nothing
    Set excelWorksheet = Nothing
    Set excelWorkbook = Nothing
    Set excelApp = Nothing
End Sub

Asegúrate de modificar el código según tus necesidades:
- Reemplaza "NombreTabla" con el nombre de la tabla o consulta que contiene los datos para cada consulta.
- Ajusta los campos y valores de la condición ("CampoCondicion = 'mc'", "CampoCondicion IN ('rd', 'ect', ...')", etc.) en cada consulta según corresponda a tus datos.
- Cambia "C:\Ruta\TuArchivo.xlsx" con la ruta y nombre que desees para el archivo de Excel resultante.

4. Ejecuta el procedimiento "ExportarConsultasAExcel" desde la ventana de inmediato (pulsa Ctrl + G para abrirla) o desde un botón en un formulario para comenzar la exportación.

Este código creará un archivo de Excel con tres hojas, una para cada consulta, y copiará los resultados de cada consulta en la hoja correspondiente.

Espero que esta solución te sea útil para exportar múltiples consultas a hojas de Excel separadas. ¡Buena suerte con tu proyecto, Julia!
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