Imprimir informe desde botón en formulario

Necesito por favor indicación para imprimir registro actual desde un formulario, para el cual cree un informe con unos campos específicos que deben de quedar en una factura. Pero no he logrado que cuando elija cierto registro en particular sólo me imprima éste. Así de esa manera necesito seguir generando el resto de las facturas de acuerdo a unos parámetros.

1 Respuesta

Respuesta
2

Ese registro tendrá algún campo que lo identifique, por ejemplo, IdFactura, Nombrecliente, etc. En las propiedades del botón, en eventos-Al hacer clic crea un procedimiento de evento y entre Private Sub y End Sub escribe

docmd.openreport"Nombredelinforme",acpreview,,"Idfactura=forms!nombredelformulario!idfactura"

o

docmd.openreport"Nombredelinforme",acpreview,,"Nombrecliente=forms!nombredelformulario!nombrecliente"

Es decir, abre el informe en aquel registro cuyo idfactura sea igual al idfactura que hay en el registro del formulario.

Una vez que hayas comprobado que te funciona, para que te lo imprima directamente sólo tienes que cambiar lo de acpreview por acnormal.

¡Gracias! señor González, voy a intentar con esta instrucción que me ha dado y luego le cuento, porque en realidad llevo un tiempo tratando de hacerlo con las macros incrustadas y no me ha funcionado muy bien, ya que por último me imprime el pantallazo del formulario y eso no debería de ser. Hasta pronto. Cesar

Respetado señor González:  Intenté hacer la instrucción que me indicó, pero cuando la corro me sale error de tiempo de ejecución 3075, error sintaxis (falta operador). Le pido el favor me indique a qué se refiere con la expresión "Idfactura=forms! y "Nombrecliente=forms!nombredelformulario!nombrecliente", disculpe la molestia.

Muchas gracias. César González.

El problema es de escribir aquí, porque corta la instrucción, es todo seguida. Voy a ver si puedo ponerlo sin que se corte. Supongamos que el informe se llama Clientes y el formulario se llama Ventas. Después de docmd. Openreport"Clientes", acpreview,,

Después de la segunda coma, y en la misma línea va

"Idfactura=forms!Ventas!idfactura"

Tal como está escrito. Y lo mismo si la instrucción es otra, es decir, todo seguido.

¡Gracias! ya he hecho así como me indica y cuando ejecuto la macro me sale un recuadro que me pide idfactura, que dato debo ingresar? ya que le ingreso un numero de factura y solo me muestra el informe pero sin datos del cliente. Lo mismo que si no le ingreso ningún número de factura, luego me pide un idcliente?. Disculpe por quitarle algo de su valioso tiempo. Muchas Gracias.

Te pide el idfactura porque es el criterio que le has puesto. Ya te dije que tenias que poner un campo que identifique a un registro en particular del informe. Si, por ejemplo, en el formulario tienes un campo Numfactura, o nombrecliente, o fecha, etc. que también esté en el informe, lo que tienes que poner es

Docmd.openreport"clientes",acpreview,,"numfactura=forms!ventas!numfactura

De todas formas, si ves que tienes algún problema, mándame un mensaje a [email protected] y te mando dos o tres ejemplos.

¡Gracias! muchas gracias y disculpe tanta molestia señor González. Buena tarde. Ya lo voy a intentar como me has dicho. César González

Buenas tardes señor González:  Me disculpa que le cause tantas molestias, ayer intenté hacer la instrucción que me indicó y funcionó perfectamente para las facturas que tienen 2 items, pero resulta que también en el mismo formulario se generan facturas de un solo item y para estas sólo me imprime el detalle y los datos del cliente no aparecen.  Necesito saber como debo de insertar el nuevo código para que me impriman tanto las facturas de 2 items como las de uno, ya que yo tengo un botón adicional para facturar uno solo.  También intenté enviar un mensaje a su email pero me rebotó.  Agradezco mucho por su paciencia.  Gracias.  César González.

Yo creo que el hecho de que no te dejara pasar el mensaje es, quizá, porque habrás puesto cabarcos con c mayúscula, pero es que aquí en cuanto pones un apellido, automáticamente te pone la primera en mayúscula. El correo exacto es [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas