No puedo pasar a excel formulario filtrado de access
Estimados BUenas tardes tengo el siguiente código y no logro pasar a excel los datos filtrados.
Me. CtlTodos. SetFocus
On Error GoTo sol_err
'Declaramos las variables
Const nombreHoja As String = "CDatos"
Const nombreTabla As String = "DIPRDEP5"
Dim miExcel As Excel.Application
Dim rutaExcel As String
Dim i As Long, j As Long
Dim fld As Field
Dim rst As Recordset
Dim db As Database
Dim rsTmp As Recordset 'el recorset de la tabla temporal
Set db = CurrentDb
Set rsTmp = db.OpenRecordset("Select * From Tbl_Auxiliar", dbOpenDynaset)
Dim datosSQL As String
With Me.Form.RecordsetClone
.MoveFirst
Do Until .EOF
rsTmp.AddNew
rsTmp!Nombre_Apellidos = Me.Nombre_Apellidos
rsTmp!DNI = Me.DNI
rsTmp!FUNCION = Me.FUNCION
rsTmp!CATEGORIA = Me.CATEGORIA
rsTmp!Cargo = Me.Cargo
rsTmp!FECHA_INICIO = Me.FECHA_INICIO
rsTmp!FECHA_FINAL = Me.FECHA_FINAL
rsTmp!ART_114 = Me.ART_114
rsTmp!ART_115 = Me.ART_115
rsTmp!DIASFALTAS = Me.DIASFALTAS
rsTmp!RESTO114 = Me.RESTO114
rsTmp!RESTO115 = Me.RESTO115
rsTmp!DIAGNOSTICO = Me.DIAGNOSTICO
rsTmp!Dias = Me.Dias
rsTmp!Alta = Me.Alta
rsTmp!mira = Me.mira
rsTmp.Update
.MoveNext
Loop
End With
rutaExcel = Application.CurrentProject.Path & "\FALTA.xlsx"
'----------------------------------------------------------------------------------------------
' rutaExcel = "c:\MisExcel\DatosEnero\nombreExcel.xls"
'----------------------------------------------------------------------------------------------
'Creamos el recordset sobre la tabla
Set rst = CurrentDb.OpenRecordset(nombreTabla)
'Si no hay registros en la consulta salimos
If rst.RecordCount = 0 Then
MsgBox "No existen datos para exportar", vbExclamation, "SIN DATOS"
Exit Sub
End If
'Creo el objeto Excel
Set miExcel = CreateObject("Excel.Application")
'Lo hago no visible
miExcel.Visible = False
'Abro el Excel seleccionado
miExcel.Workbooks.Open rutaExcel, True, False
'Sitúo el cursor en el reloj de arena porque el proceso puede ser largo
DoCmd.Hourglass True
'Inicializamos i y j
i = 0
j = 0
'Nos movemos al primer registro
rst.MoveFirst
'Iniciamos el proceso
Do Until rst.EOF
miExcel.Worksheets(nombreHoja).Range("b12").Value = "OLAVARRIA (077)"
miExcel.Worksheets(nombreHoja).Range("d12").Value = "HELEN KELLER"
miExcel.Worksheets(nombreHoja).Range("j12").Value = "1299"
miExcel.Worksheets(nombreHoja).Range("O12").Value = Now
'miExcel.Worksheets(nombreHoja).Range("A16:S20000").ClearContents
'Recorremos los campos de la tabla o consulta
For Each fld In rst.Fields
miExcel.Worksheets(nombreHoja).Range("A16").Offset(i, j).Value = rst.Fields(fld.Name).Value
'Aumentamos una columna
j = j + 1
Next fld
'Aumentamos una fila
i = i + 1
'Reinicializamos j
j = 0
'Nos movemos al siguiente registro
rst.MoveNext
Loop
'Volvemos a situar el puntero en su posición normal
DoCmd.Hourglass False
'Lanzamos un mensaje de confirmación
MsgBox "Exportación realizada", vbInformation, "CORRECTO"
'Guardamos el Excel y lo cerramos
miExcel.ActiveWorkbook.Save
Salida:
miExcel.Workbooks.Close
miExcel.Application.Quit
Set miExcel = Nothing
DoCmd.SetWarnings False
DoCmd.RunSQL "Delete From Tbl_Auxiliar"
Application.FollowHyperlink rutaExcel
Exit Sub
sol_err:
'Volvemos a situar el puntero en su posición normal
DoCmd.Hourglass False
'Gestionamos los errores error que pudieran producirse
Select Case Err.Number
Case 9 'No existe la hoja
MsgBox "La hoja no existe en el Excel", vbCritical, "ERROR"
Case 1004 'No existe el Excel
MsgBox "El Excel donde quiere exportar los datos no existe", _
vbCritical, "ERROR"
Case Else
MsgBox "Se ha producido el error " & Err.Number & " - " & Err.Description, _
vbCritical, "ERROR"
End Select
Resume Salida