Cancelar impresión en DoCmd.RunCommand acCmdPrintSelection

Necesitaría información para que si quiero cancelar una impresión el código visual basic no me de error, todo esto dentro de Access 2007. Las lineas de código que tengo son:

DoCmd. OpenReport "Amigos", acViewPreview, "", "", acNormal
DoCmd. RunCommand acCmdPrintSelection

Con esto abro el cuadro de impresión para poder elegir impresora, pero si por casualidad pincho en cancelar la impresión me da el error:

"Se ha producido el error '2501' en tiempo de ejecución: La acción RunCommand se canceló."

Respuesta
3

Si solo quieres anular el mensaje de error (ese y cualquier otro que te pueda saltar), una opción con menos líneas de código sería:

On error Resume  Next
DoCmd. OpenReport "Amigos", acViewPreview, "", "", acNormal
DoCmd. RunCommand acCmdPrintSelection

Aunque yo soy más partidario de usar un control de errores como el de eperezfer, porque da más información que solo "ocultar" el error, aunque hay casos como este en que es perfectamente válido hacerlo así, porque presuntamente ese error será el único que te salte en situaciones normales

2 respuestas más de otros expertos

Respuesta
2

Basta con anular el mensaje de error. Ponlo como

Private Sub Comando14_Click()
On Error GoTo Comando14_Click_Err

DoCmd.OpenReport "amigos", acViewPreview, "", "", acNormal
DoCmd.RunCommand acCmdPrintSelection

Comando14_Click_Exit:
Exit Sub

Comando14_Click_Err:
Resume Comando14_Click_Exit

End Sub

Al agregarle control de errores justo debajo de comando14_click_err pondría lo de mensaje de error, pero aquí ya lo he suprimido

Respuesta
1

Yo prefiero detectar el error para saber la descripción del error:

Private Sub cmdImprimir()
On Error GoTo hay_error

DoCmd.OpenReport "Amigos", acViewPreview, "", "", acNormal
DoCmd.RunCommand acCmdPrintSelection

Error_Exit:
Exit Sub

hay_error:

If Err.number=2501 then

    MsgBox "Ha cancelado la impresión",vbiformation,"Imprimir"

Else

   MsgBox "Ha ocurrido el error " & Err.Number & " " & Err.Descripcion & " En " & Err.Source, vbCritical,"Imprimir"

EndIf

Resume Error_Exit

End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas