Exporta reportes a PDF desde VBA en Access

Necesito que cada cierto rango de tiempo, el sistema exporte algunos reportes a PDF... Entonces tengo lo siguiente

En un formulario el usuario configura el destino de los reportes y cada cuanto tiempo desea que el sistema exporte los informes.

Para este ejemplo diremos que el destino de los informes es la carpeta Dropbox y que los informes de exportaran lada 60 minutos... Hasta acá, todo bien...

En el formulario donde se gestiona el sistema tengo puesto un intervalo de cronómetro en "60000" para que cada un minuto el sistema haga lo siguiente

En el evento Al Cronómetro se ejecuta

Call InformesPDF

'Lo tengo así porque esta función puede ser llamada desde 3 distintos formularios

Public Function InformesPDF()

   Dim db As Database, rs0 As DAO.Recordset
   Dim vDestino As String, Hr As Date, Mtos As Integer
   Set db = CurrentDb
   Set rs0 = db.OpenRecordset("tblHoraInforme", DB_OPEN_DYNASET)

   If Now() >= rs0!HoraInforme Then
         vDestino = DLookup("DestinoInformes", "tblConfiguracion")
         Mtos = DLookup("TiempoInformes", "tblConfiguracion")
         If IsNull(vDestino) Or vDestino = "" Then
               Exit Function
         Else
               DoCmd.OutputTo acOutputReport, "PDFProductosStockCritico", acFormatPDF, vDestino & "\Stock Critico.pdf", False
            DoCmd. OutputTo acOutputReport, "PDFResumenCanales", acFormatPDF, vDestino & "\Impacto Ventas Canales.pdf", False
         End If
         rs0.Edit
               rs0!HoraInforme = DateAdd("n", Mtos, Now())
         rs0.Update
   End If

End Function

Como se puede ver, el sistema debe exportar a PDF 2 informes y luego registrar la hora en que deberá volver a exportarlos aumentando el intervalo de tiempo configurado ¿Dónde está el problema? Que luego que se exporta el primer informe el sistema se cae indicando que "OutputTo no está disponible"... O sea no exporta el segundo informe y tampoco cambia la hora del siguiente envío...

Otra cosa que está ocurriendo que el evento "Al cronómetro" se ejecuta la primera vez y luego no se vuelve a ejecutar...

¿Alguna idea de qué puede estar mal?... Tengo Access 2013

Respuesta

Yo no le veo nada raro al código. Quizás el problema venga porque el primer informe tarda mucho en exportarse, pues nunca me encontré con este problema.

Prueba a invertir el orden de exportación de los informes a ver si así se resuelve el problema.

Si no, otra cosa que puedes probar es a poner DoEvents entre las dos lineas DoCmd. OutPutTo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas