Error al Imprimir reporte desde Formulario Access

Estoy aprendiendo a manejar Access y estoy haciendo un programa de ventas para la tienda de mi hermana, trato de imprimir el record del formulario de venta, pero me sale un cuadro para que introduzca el valor del parámetro y necesito que sea automático, que imprima el actual que tengo abierto.

Aun cuando le introduzco el valor manualmente, me imprime normalmente pero el reporte sale en blanco. ¿Qué estoy haciendo mal?

Este es el codigo vba:

Option Compare Database

 Public pNUMVENTA As Long

Public stDocName As String

____________________________________________________

Public Sub imprimirTicket()

On Error GoTo Err_IMPRIME

Dim stDocName As String

stDocName = "VENTA_TICKET"

DoCmd.OpenReport stDocName, acPreview, "", "pNUMVENTA =" & pNUMVENTA & "", acNormal

DoCmd.RunCommand acCmdPrint

Exit Sub

Err_IMPRIME:

    MsgBox err.Description

End Sub

3 Respuestas

Respuesta
1

Te falta declarar Option Explicit abajo de Option Compare Database.

DoCmd.OpenReport stDocName, acPreview, "", "pNUMVENTA =" & pNUMVENTA & "", acNormal

en ese parte de tu código revisa si "pNUMVENTA =" es de tipo numero , si es de tipo texto la comparacion tendria que ir "pNUMVENTA" ='" & pNUMVENTA & "'

Si quieres que lo revise puedes mandarme la base a mi correo

[email protected]

Te dejo una lista de vídeos de un formulario de ventas. El código esta en la descripción de cada vídeo.

https://www.youtube.com/playlist?list=PLsbpurIPHmoKiBVg0vRV5iT07zSFHdrfx 

Hola Antonio,

Se me olvido aclarar que en el código del botón "PAGAR" del formulario,  tengo la declaración Option Explicit asi:

pNUMVENTA = Me.LblNumVenta.Caption

pSUPAGO = Me.TxtPagar.Value         

pSUCAMBIO = Me.LblCambio.Caption

Call TICKET.imprimirTicket

Y cree un modulo "TICKET",   Con titulo "Public Sub imprimirTicket()"   como lo mostré anteriormente.

Esa es la declaración que tu dices que me hace falta cierto?

La intruccin Option Explicit es para forzar a declarar tus variables (Dim,PrivatePublic ...)

Ya que si no todas tu variables serán de tipo Variant, lo cual no ayuda mucho si utilizas mucho el código.

¿PNUMVENTA <- es una variable o que es?

"pNUMVENTA" =" & pNUMVENTA & " intenta de la siguiente manera.

O envíame la base por correo para revisarla

Si es una variable temporal,   en la tabla "Venta"  está el campo "Id_Venta", tipo "Autonumérico" para que vaya enumerando cada venta que se haga.   Y en el Formulario está incluido como una etiqueta "LblNumVenta" .   Y de lo que entiendo es que uno debe declarar una variable para cada campo de las tablas o formularios, aunque hay tutoriales que usan directamente el nombre del campo.

¿Lo que entiendo de sus recomendaciones es que no esta conectada la variable con el campo?, 

Estoy trabajando con la base por las noches en mi casa, si quieres te envío el archivo en la noche cuando llegue, de todos modos también intentare hacer las recomendaciones que me dicen a ver que resultado me arroja.

Como es tu e-mail?

[email protected]

Este es mi email.

Respuesta
1

Lo más probable es que en la tabla o consulta sobre la que has hecho el informe no exista ningún campo que se llame pNUMVENTA, y por eso te pide el valor. Compruébalo y cámbialo por el correcto en la parte que te marco en negrita:

DoCmd.OpenReport stDocName, acPreview, "", "pNUMVENTA =" & pNUMVENTA, acNormal

Con respecto a la otra respuesta que te dan, el código te funcionará igual si no usas el "Option Explicit"

Saludos


Respuesta

Cuando Access te pide el parámetro es por que no existe el nombre del campo revisa el nombre del campo. Si el campo proviene del formulario debes anteponer la palabre Me.

En tu caso seria Me. PNUMVENTA. Es claro que en el reporte debe existir en campo pNUMVENTA

Prueba con

pNUMVENTA=Val(Me.LblNumVenta.Caption)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas