Botón imprimir para tres casos en el mismo formulario access

Estoy programando un mismo botón para imprimir tres distintos reportes según sea el caso, es decir quiero que según sea el List Box Visible que se encuentre en ese momento True que sea ese el que imprima, si no hay ningún activo pues que ese botón se mantenga bloqueado. Para empezar por el momento tengo este código el cual me da error de compilación dice que no se ha definido etiqueta

Private Sub CmdImpSegunCaso_Click()
If Me.LstInvPrest.Visible = False Or Me.LstInvPormenor.Visible = False And Me.LstInvgral.Visible = True Then
    On Error GoTo err_PrintOut
        ' paramos la actualización de pantalla
        Application.Echo False
        ' Abrimos el informe
        DoCmd.OpenReport "IMPRIMIR01A_ConInvGraLibros", acViewPreview
        ' Imprimimos 1 copias,
        ' En calidad borrador
        DoCmd. PrintOut acPages,,, acDraft, 1
        ' Cerramos el informe
        DoCmd.Close acReport, "IMPRIMIR01A_ConInvGraLibros"
        ' Activamos la actualización de pantalla
        Application.Echo True
    On Error GoTo 0
    Exit Sub
ElseIf Me.LstInvgral.Visible = False Or Me.LstInvPormenor.Visible = False And LstInvPrest.Visible = True Then
    On Error GoTo err_PrintOut
        Application.Echo False
        DoCmd.OpenReport "IMPRIMIR01B_ConInvPresLibros", acViewPreview
        DoCmd.PrintOut acPages, , , acDraft, 1
        DoCmd.Close acReport, "IMPRIMIR01B_ConInvPresLibros"
        Application.Echo True
    On Error GoTo 0
Exit Sub
ElseIf Me.LstInvgral.Visible = False Or Me.LstInvPrest.Visible = False And LstInvPormenor.Visible = True Then
       On Error GoTo err_PrintOut
        Application.Echo False
        DoCmd.OpenReport "IMPRIMIR01C_ConInvPormLibros", acViewPreview
        DoCmd.PrintOut acPages, , , acDraft, 1
        DoCmd.Close acReport, "IMPRIMIR01C_ConInvPormLibros"
        Application.Echo True
    On Error GoTo 0
    Exit Sub
End If
End Sub

Agradezco de antemano cualquier ayuda.  Saludos y Feliz Año Nuevo 2015!!!!!

1 respuesta

Respuesta
1

Sin entrar en detalles del funcionamiento (porque sin verlo no acabo de entenderlo del todo), la respuesta a tu consulta exclusivamente al error que te aparece es porque estás llamando a un control de errores que no tienes definido en el código.

Tu línea (

On Error GoTo err_PrintOut

)

es la que te está llevando a un control de errores que no tienes.

Para solventarlo inicialmente bastaría que hicieras lo siguiente. Entre el último END IF y el END SUB escribes lo siguiente:

...

End if 'Este sería tu último End if antes del End Sub

Salida:

Exit sub

err_PrintOut:

msgbox "Se ha producido el error " & err,number & " - " & err,description,vbcritical,"ERROR"

Resume Salida

End Sub

...

Y eso te solventará, insisto, sólo el error de la falta de definición de etiqueta.

En la línea del msgbox no sé por qué salen comas en err. Deberían ser puntos.

Es decir:

Err(PUNTO)number

Err(PUNTO)description

¡Mil Gracias Neckkito!!!, tienes toda la razón en lo que escribes, arreglaré esa parte.

Respecto a lo demás, la estructura y otros errores que se den mejor abriré otro hilo para seguirte consultando; reitero mi agradecimiento!.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas