Input Box con Número de Copias

Tengo un botón en un formulario que me muestra un ImputBox para introducir el nº de copias que deseo imprimir un informe. El código que uso es este:

DoCmd.OpenReport "infcodigobarras", acViewPreview, "", "[Forms]![formIngreso]![formIngreso1]![IdProducto]=[tblProducto]![IdProducto]", acNormal
DoCmd. PrintOut acPages,,,, InputBox("Indica el número de copias que deseas")
DoCmd. Close acReport, "infcodigobarras"

El código me funciona más o menos bien, pero cuando pulso Cancelar no me cierra el informe, sino que me imprime una copia y cuando pulso aceptar (sin escribir nada en el imputbox) me sale un error de tipo de datos incorrecto.

Lo que quisiera es que al pulsar cancelar me cerrara la vista del informe y al pulsar aceptar (sin escribir nada en el imputbox) me imprimiera una copia.

¿Alguna idea de como hacerlo?

2 respuestas

Respuesta
3

El código que te propone Jacinto no te va a solucionar lo de pulsar el botón cancelar. Tienes que cambiar en su código esta línea :

If LasCopias = "" Then

Por esta otra:

If Strptr(LasCopias) = 0 Then

Además, deberías validar que no se introduce un valor "extraño" como un 0 o un número negativo...

Ah! Me olvidaba: la variable LasCopias debes declararla como variant y no como integer.

Respuesta
1

Eloy: El siguiente código no lo he probado, porque tendría que reproducir todo en una BD, pero creo que funcionará y si no es así me comentas.

Dim LasCopias As Integer
LasCopias = InputBox("Indica el número de copias que deseas",,1)
If LasCopias = "" Then
Exit Sub
Else
DoCmd.OpenReport "infcodigobarras", acViewPreview, "", "[Forms]![formIngreso]![formIngreso1]![IdProducto]=[tblProducto]![IdProducto]", acNormal
DoCmd. PrintOut acPages,,,, LasCopias
DoCmd. Close acReport, "infcodigobarras"
End If

Un saludo >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas