
Exportar resultados de consulta mediante subforma
Publicado por jesus (1 intervención) el 08/03/2023 14:41:14
Saludos,
Estoy creando una funciona ExportarExcel2() para intentar exportar los datos de una consulta insertada en un formulario de nombre CONSULTES_EXPLOTACIO, sin lanzar de nuevo la consulta, ja que el volument de datos es muy grande y es duplicar el proceso y la lentitud de la accion. Els subformulario que contiene la consulta se llama SUBOBJECTESFORM. El codigo es el siguiente:
Function ExportarExcel_2()
Dim appExcel As Object
Dim wb As Object
Dim ws As Object
Dim rst As DAO.Recordset
Dim intColumna As Integer
'Crea una nueva instancia de Excel
Set appExcel = CreateObject("Excel.Application")
appExcel.Visible = True
'Crea un nuevo libro de Excel
Set wb = appExcel.Workbooks.Add
'Selecciona la hoja activa del libro de Excel
Set ws = wb.ActiveSheet
'Obtiene los datos del subformulario y los guarda en un Recordset
Set rst = Consultes_Explotacio!SubObjectesForm.Form.RecordsetClone
'Agrega los nombres de las columnas del subformulario a la primera fila del libro de Excel
For intColumna = 0 To rst.Fields.Count - 1
ws.Cells(1, intColumna + 1).Value = rst.Fields(intColumna).Name
Next intColumna
'Agrega los datos del subformulario a las filas del libro de Excel
ws.Range("A2").CopyFromRecordset rst
'Libera la memoria utilizada por el Recordset
rst.Close
Set rst = Nothing
'Guarda y cierra el libro de Excel
'wb.SaveAs "C:\Ruta\Archivo.xlsx"
'wb.Close
'Libera la memoria utilizada por las variables
Set ws = Nothing
Set wb = Nothing
Set appExcel = Nothing
End Function
El problema esta siempre en la llamada al subformulario, no encuentra el objeto, lo he resaltado en negrita. Lo tengo que abrir primero, y esto es lo que no entiendo, si ya esta abierto el formulario principal que contiene el subformulario con los datos de la consulta, porque no encuentra el objeto. Si lo vuelvo a abrir es como relanzar la consulta, acaba siendo muy lento. Muchas gracias por todo.
Buscando crecer en el nuevo mundo que me ha tocado como batalla en la actualidad.
Estoy creando una funciona ExportarExcel2() para intentar exportar los datos de una consulta insertada en un formulario de nombre CONSULTES_EXPLOTACIO, sin lanzar de nuevo la consulta, ja que el volument de datos es muy grande y es duplicar el proceso y la lentitud de la accion. Els subformulario que contiene la consulta se llama SUBOBJECTESFORM. El codigo es el siguiente:
Function ExportarExcel_2()
Dim appExcel As Object
Dim wb As Object
Dim ws As Object
Dim rst As DAO.Recordset
Dim intColumna As Integer
'Crea una nueva instancia de Excel
Set appExcel = CreateObject("Excel.Application")
appExcel.Visible = True
'Crea un nuevo libro de Excel
Set wb = appExcel.Workbooks.Add
'Selecciona la hoja activa del libro de Excel
Set ws = wb.ActiveSheet
'Obtiene los datos del subformulario y los guarda en un Recordset
Set rst = Consultes_Explotacio!SubObjectesForm.Form.RecordsetClone
'Agrega los nombres de las columnas del subformulario a la primera fila del libro de Excel
For intColumna = 0 To rst.Fields.Count - 1
ws.Cells(1, intColumna + 1).Value = rst.Fields(intColumna).Name
Next intColumna
'Agrega los datos del subformulario a las filas del libro de Excel
ws.Range("A2").CopyFromRecordset rst
'Libera la memoria utilizada por el Recordset
rst.Close
Set rst = Nothing
'Guarda y cierra el libro de Excel
'wb.SaveAs "C:\Ruta\Archivo.xlsx"
'wb.Close
'Libera la memoria utilizada por las variables
Set ws = Nothing
Set wb = Nothing
Set appExcel = Nothing
End Function
El problema esta siempre en la llamada al subformulario, no encuentra el objeto, lo he resaltado en negrita. Lo tengo que abrir primero, y esto es lo que no entiendo, si ya esta abierto el formulario principal que contiene el subformulario con los datos de la consulta, porque no encuentra el objeto. Si lo vuelvo a abrir es como relanzar la consulta, acaba siendo muy lento. Muchas gracias por todo.
Buscando crecer en el nuevo mundo que me ha tocado como batalla en la actualidad.
Valora esta pregunta


0