No puedo imprimir de un formulario

Tengo un formulario de donde no puedo imprimir un informe por medio de un botón, el cual tiene el siguiente código:

Private Sub Comando38_Click()

Dim vId As Variant

vId = Me.Id.Value If IsNull(vId) Then Exit Sub
DoCmd.OpenReport "Recibo de pago", , , "[Id] =" & vId
End Sub

Quisiera saber por que razón no imprime, si puedes ayudarme y decirme en donde tengo la falla. Nombre del formulario: FPagos, de la Tabla: Pagos, Informe a Imprimir: Recibo de pagos.

1 respuesta

Respuesta
1

Pues dónde tienes la "falla". Pues eso que lo que has puesto es una falla pero "valenciana". Perdona por la ironía. Supongo que hay algún error en la transcripción del código, ya que de lo contrario, lo que has puesto debería hacer saltar todos los mensajes de Access.

Voy a intentar analizarlo:

Declaras una variable que no tiene sentido ya que luego le das el valor de un control del formulario en el que te encuentras (por lo que la variable sobra. El valor de ese control lo puedes obtener directamente)

Entiendo que es un error de transcripción, pero en la misma linea le das un valor a la variable y creas un if. No entiendo porque encierras entre paréntesis la variable (vid), si creas un if con condiciones te falta un "else" (si no...) al igual que un "end if".

Por otra parte, si el "Id" es el campo autonumérico que crea Access automáticamente, existirá siempre que haya un registro, y si no hay ningún registro... ¿qué se va a imprimir?

Por todo ello, expón un poco más que es lo que pretendes, (no parece complicado, pero es difícil adivinarlo).

Visita El Foro

Hola gracias por atender, primero el código lo saque de un botón donde si me funciona de un formulario, quise llevarlo a lo antes expuesto. Explico mejor: teno una tabla llamada Pagos, la cual le ingreso los datos desde un formulario con el origen de control de ella. Luego de rellenar los campos al final le puse un botón para imprimir un recibo de esos datos y otros de la tabla en cuestión, ese recibo que quiero imprimir lo tengo diseñado en un informe que se llama Recibo de pago, quien también tiene el origen de control de la tabla Pagos. Quise hacer que solo me imprima registro especifico, en este caso el ultimo por eso es lo del Id, y no me imprima todos lo registros. No se si porque el botón esta en otro formulario no se pueda hacer. si me puedes indicar entonces como hago eso t lo voy agradecer mucho. No se mucho de esto solo soy un copion Gracias.

Si lo que entiendo es que quieres imprimir el registro que tienes en "pantalla" en el formulario, porque no lo haces más sencillo y simplemente en el informe, en el origen de datos, (pinchas sobre los 3 puntitos) y basándote en la tabla Pagos, en el campo ID colocas en criterios algo como:

[forms]![nombre de mi formulario].[id]

Hola buena tu solución , pero deberás , quiero que se imprima el informe desde el formulario Fpago, ya que tiene otro diseño y el de impresión es totalmente diferente y no lleva todos los registros recopilados en la tabla pagos. Si no se puede dime y desistiré de eso, muchas gracias por tu ayuda espero de nuevo tu respuesta, chau

Ahora si que me has "liado" y ya no lo entiendo.

"quiero que se imprima el informe desde el formulario Fpago, ya que tiene otro diseño y el de impresión es totalmente diferente"

¿Estamos hablando de imprimir un informe o un formulario?

Hola, no se que es liado, me imagino que es , confusión. Bueno dejame explicarme. Quiero imprimir Facturas, de una tabla llamada" Pagos". Tengo un formulario llamado" FPagos" con el que meto los diferentes registros en dicha tabla. En ese formulario puse un Botón para imprimir . Diseñe un Informe para tal fin de Nombre" Recibo de pago", que es el que quiero que se imprima desde el Formulario FPagos con el ultimo registro que ese esta introduciendo en pantalla. Como una Tienda para ser mas sencillo mi explicación, gracias por tu paciencia.

Antes de nada perdón por el retraso. Pues eso lo solucionas con lo que te había comentado.

Entiendo que en el informe tienes como origen de datos la tabla "Pagos". Ponlo en vista diseño y entra en propiedades. En origen de datos, "pincha" en los 3 puntitos "...", te preguntara si deseas crear una consulta sobre la tabla. Dile que si. Se te abrirá el asistente para consultas. En la columna dónde aparezca el campo clave (por lo general "id"), en los parámetros colocas lo que te comente anteriormente:

[forms]![nombre de mi formulario].[id]

Sólo tienes que tener en cuenta que un registro no se guarda, hasta que cierres el formulario o cambies el registro activo. Como entiendo que no es tu caso, en el botón, tendrás que poner en el evento "al hacer click" antes del código VBA que abre el informe

Me. Refresh

Un saludo. (Y por comentar, esto mismo lo puedes hacer con todos los campos por los que quieres que te filtre el informe, mira el ejemplo de mi foro "Informe con parámetros desde formulario" o para hacerlo de otra forma "Imprimir informe registro actual y solicitar número de copias")

Hola , no te perdono , te disculpo el que perdona es dios,...je je je, y si de maravilla tu solución, valió la pena esperar.Gracias muchas gracias..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas