This simple piece of code to export one recordset to excel
' ------------------------------------------------------------------------------------ ' \\ -- function to export the ADO recordset to Excel ' ------------------------------------------------------------------------------------ Private Function Exportar_ADO_Excel(rec As ADODB.Recordset) As Boolean On Error GoTo errSub 'Dim cn As New ADODB.Connection 'Dim rec As New ADODB.Recordset Dim Excel As Object Dim Libro As Object Dim Hoja As Object Dim arrData As Variant Dim iRec As Long Dim iCol As Integer Dim iRow As Integer Me.Enabled = False ' -- Create Excel objects Set Excel = CreateObject("Excel.Application") Set Libro = Excel.Workbooks.Add ' -- open sheet Set Hoja = Libro.Worksheets(1) Excel.Visible = True: Excel.UserControl = True ' -- send headers iCol = rec.Fields.Count For iCol = 1 To rec.Fields.Count Hoja.Cells(1, iCol).Value = rec.Fields(iCol - 1).Name Next If Val(Mid(Excel.Version, 1, InStr(1, Excel.Version, ".") - 1)) > 8 Then Hoja.Cells(2, 1).CopyFromRecordset rec Else arrData = rec.GetRows iRec = UBound(arrData, 2) + 1 For iCol = 0 To rec.Fields.Count - 1 For iRow = 0 To iRec - 1 If IsDate(arrData(iCol, iRow)) Then arrData(iCol, iRow) = Format(arrData(iCol, iRow)) ElseIf IsArray(arrData(iCol, iRow)) Then arrData(iCol, iRow) = "Array Field" End If Next iRow Next iCol ' -- send all records to Excel Hoja.Cells(2, 1).Resize(iRec, rec.Fields.Count).Value = GetData(arrData) End If Excel.Selection.CurrentRegion.Columns.AutoFit Excel.Selection.CurrentRegion.Rows.AutoFit ' -- delete references Set Hoja = Nothing Set Libro = Nothing ' not quit excel 'Excel.Quit 'Set Excel = Nothing Exportar_ADO_Excel = True 'Me.Enabled = True Exit Function errSub: MsgBox Err.Description, vbCritical, "Error" Exportar_ADO_Excel = False Me.Enabled = True End Function