Imprimir desde formulario/informe

Buenos días, mi problema es el siguiente:
En mi base de datos, hago una consulta parametrizada de las facturas de los clientes que quiero ver, hasta ahí bien.
Lo que pasa es que quiero que esas facturas solo puedan imprimirse una vez, y que al intentar volverlas a imprimir me salga un msgbox diciendo que ya está imprimida.
Espero que me puedan ayudar. Muchas gracias de antemano

1 Respuesta

Respuesta
1
Te sugiero añadir un campo tipo boolean en la tabla base donde tienes las facturas, cuando ejecutes las orden de imprimir que se verifique si este campo está activo o no. En el caso que no se haya impreso antes, dejas que continué el código para la impresión y si ya se imprimió te aparezca el mensaje que quieres.
No te he puesto el código porque entiendo que lo que quieres es la idea de como hacerlo. Si necesitas explicación más detallada avísame.
Muchas gracias por la idea aunque si t soy sincero no sabría como hacerlo, si puedes ayudarme algo más sobre el código te lo agradecería.
Y ya que estoy aprovecho, con la idea que me has dado, ¿habría manera de una vez imprimido se quedara marcada automáticamente la casilla del campo booleano?
Muchas gracias de nuevo
Asumiendo que tienes el campo booleano en la tabla correspondiente y que yo llamaré "Impreso" (tu luego le pones el nombre apropiado), el código sería algo así:
If DlLookUp("[Impreso]","NOMBRETABLA","Idfactura=" & Forms!NOMBREFORMUALRIO!Id)=False Then
  'Aquí colocas tu rutina de impresión sea desde formulario o informe
Else
   Msgbox "Esta factura ya ha sido impresa"
End If
Siento ser pesado, pero es que no ma quedado claro del todo..
¿Todo este código lo pongo en el evento Al hacer click?
Y otra cosa yo tenia puesto en el informe un botón Imprimir con una Macros, ¿supongo qué la macros la borro y la sustituyo por el código que me has dado n?
He colocado este código en el evento Al hacer click del botón Imprimir del Informe:
If DlLookUp("[Recibo Generado]", "Paradas Consumo Aplicado") = False Then
On Error GoTo Err_Comando108_Click
    Dim stDocName As String
    stDocName = "Etiquetas Recibo Luz"
    DoCmd.OpenReport stDocName, acNormal
Exit_Comando109_Click:
    Exit Sub
Err_Comando109_Click:
    MsgBox Err.Description
    Resume Exit_Comando108_Click
Else
  MsgBox "Esta Factura ya ha sido Impresa"
  End If
End Sub
Supongo que no te ha funcionado.
En el Dlookup no has especificado ninguna condición, como te la indiqué en el ejemplo:
If DlLookUp("[Recibo Generado]", "Paradas Consumo Aplicado","Idfactura=" & Forms!NOMBREFORMUALRIO!Id) = False Then
Te falta esta condición que la que define cual de las facturas se va a imprimir, identificada con Id que seguramente tienes en tu consulta asociada al informe.
Los nombres de los campos los cambias a los que tengas definidos en tu BBDD.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas