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.
|