Poder imprimir un Informe del Formulario que esta en pantalla visualizandose.

Imprimir la ficha que esta en pantalla

* Saludos para todo el foro, soy nuevo en este Foro y en el campo de Access y necesito ayuda urgente de alguien que pueda dármela.
* Tengo un formulario donde están los datos de cabecera de un registro y en un subformulario los artículos vendidos, los clientes son numerados a través de un campo Autonumérico y deseo a través de un botón que me imprima esta ficha que está en pantalla los (Datos del Cliente y Líneas Artículos), y no logro conseguir que me imprima la ficha en pantalla siempre saca los registros y artículos del primer cliente que hay en la tabla.
* Lo he intentado con una MACRO a través de la opción WHERE pero desde allí no consigo poder alcanzar los datos del Cliente que está en pantalla en ese momento, en el informe siempre salen los datos del primer Cliente que hay en la tabla.
* También me gustaría evitar tener que dar el numero antes de imprimir, quisiera que al pulsar el botón directamente me apareciese el informe para visualizar o para impresión, sin tener que darle el numero anteriormente
* Esto es lo que estoy metiendo a través de la macro en el EVENTO (Click) en el Botón Imprimir Informe
WHERE=[Formularios]![CONTROL DE EVENTOS]![NumReferencia]=[NOTA DE TRABAJO]![IdCliente(Maestro Eventos)]
Los Nombres utilizo son
Formulario : CONTROL DE EVENTOS
Referencia en el formulario donde aparece el nº cliente: NumReferencia
Informe: NOTA DE TRABAJO
Tabla Clientes: Cod. Cliente: IdCliente (Maestro de Clientes)

1 respuesta

Respuesta
2

Estás poniendo la condición WHERE al revés: primero tiene que ir el campo que quieres filtrar en tu informe, y luego el valor por el que lo quieres filtrar (el campo del formulario), es decir, ha de ser algo así:

[Informes]![NOTA DE TRABAJO]![IdCliente(Maestro Eventos)]=[CONTROL DE EVENTOS]![NumReferencia]

Me sale la vista previa en blanco o sea sin datos, podrías revisar si me falta alguna cosa. Puede ser impreso sin tenerme que pedir el numero a filtrar, ¿o sea directamente al darle al botón se seleccionase el numero que esta en pantalla?... gracias de antemano

Te doy otra opción que sí funciona, porque yo no uso nunca las macros incrustadas, y no las domino tanto:

1º/ Abre tu formulario en Vista diseño, y haz click derecho encima de tu botón. Elige "Propiedades" en el menú que te aparece.

2º/ Cuando se te abra la ventana de propiedades del botón, vete a la Pestaña "Eventos" y localiza la fila "Al hacer click"

3º/ Verás que te pone [Macro Incrustada]. Le borras ese valor y pulsas en el botón de la derecha que tiene tres puntos. Eliges Generador de código en la ventana que se te abre.

4º/ Se te abrirá el editor de Visual Basic, y entre las lineas que te aparecen (Private Sub... y End Sub), escribes:

DoCmd.OpenReport "NOTA DE TRABAJO", acViewPreview, , "[IdCliente(Maestro Eventos)]=" & Me.NumReferencia

¿Hola cómo estas?.. Mira esta es la instrucción que tengo ahora.

He cambiado el nombre del del cliente y es el mismo para el Formulario que para el Informe ya que es el mismo campo,

Lo he probado antes como me habías dicho pero tampoco me abría el informe y lo he cambiado por si fuese eso la causa de no poderlo visualizar

Private Sub Nota_Trabajo_Click()

DoCmd.OpenReport "NOTA DE TRABAJO", acViewPreview, , "[IdCliente(Maestro Eventos)]=" & Me.[IdCliente(Maestro Eventos)]

End Sub

Esto es lo que tengo ahora puesto, pero no me hace nada tampoco cuando pulso el botón de impresión, no me aparece el formulario como lo hacia antes.

Gracias por tu ayuda.

Vamos a ver... en la última parte, donde yo te puse esto:

"[IdCliente(Maestro Eventos)]=" & Me.NumReferencia

Tienes que poner:

"Nombre del campo de tu informe que tiene el código del cliente =" & Me.Nombre Campo de tu formulario que tiene el código del cliente por el que quieres filtrar

Los nombres exactos que tienes que poner los puedes ver sacando las propiedades de cada campo, en la pestaña Otras, propiedad Nombre. Si los nombres llevan espacios, o caracteres "raros", han de ir entre corchetes

Hola de nuevo, he renombrado de nuevo los campos y he recogido los nombres a través de propiedades en la pestaña "otras", y os he copiado en el proceso que me has indicado y sigue sin abrir el informe,¿podría ser culpa del informe?, ¿U otra propiedad del botón que no este bien configurada?.

Le he dado otro informe y tampoco llega abrirlo dándole los nombre exactos de los campos, de ese informe

Lo que tengo ahora en la expresión es;

Private Sub Nota_Trabajo_Click()

DoCmd.OpenReport "NOTA DE TRABAJO", acViewPreview, , "[IdCliente(INFOR)]=" & Me.[IdCliente(FORM)]

End Sub

Siento causarte de nuevo molestias por todo esto. Gracias.

Un saludo

Sube una copia de la bd con las tablas, el formulario y el informe que intervienen (no hace falta que tenga datos reales, con un par de registros inventados es suficiente) a dropbox o a una web del tipo de filebig.net, y ponme aquí el enlace de descarga. Así la miro y veo qué puede estar fallando.

Te adjunto el enlace a DropBox en la que estas el enlace a CONTROL DE EVENTOS, en la parte inferior derecha estan los dos botones con sus formularios que no funcionan bien.

Tengo un problema también con los botones de anterior/posterior que han de pasar por cada uno de los registros del subformulario para poder ver el siguiente cliente.

Si necesitas alguna otra cosa avisame.

Gracias por todo. Un saludo

El enlace que no te había adjuntado en el anterior mensaje:

https://www.dropbox.com/s/ilnf6tyowiydoew/CONTROL%20DE%20EVENTOS.accdb?dl=0 

Ya encontré el problema, y es que en el informe el nombre del campo es distinto al que tienes en la tabla, y el filtro hay que hacerlo por el nombre en la tabla/consulta origen de datos del informe, es decir, que tendría que ser así:

"[IdCliente (Maestro Eventos)]=" & Me.[IdCliente(FORM)]

Te resubo la BD corregida: http://www.filebig.net/files/hnbQd754UF 

Y te recomendaría que miraras este enlace sobre los nombres de los campos.

Otra vez de nuevo dándote la lata ... lo siento

Me he descargado la BD rectificada que me has mandado y cuando pido un informe si el Cliente NO es el que esta en ese momento en pantalla me saca en blanco el informe, y si es el mismo me saca el informe con los datos del primer cliente y con la venta de todos los clientes.

Si la tienes aun ahí comprueba y veras que siempre saca el Cliente nº 13 y las líneas de venta de todos los clientes.

¿No se puede automatizar para que saque el cliente que esta en pantalla sin tenerselo que indicar?

Un saludo

Y digo yo: ¿Cómo haces para pedir un informe de un cliente que no está en pantalla?

Si te refieres a que siempre te muestra el cliente 13 al abrir directamente el informe desde el panel de navegación, la explicación es que lo tienes mal diseñado: lo que coloque en el encabezado de página va a ser "fijo" en cada página del informe. Los datos que dependan de la tabla los has de colocar en la sección Detalle del informe, o en los encabezados de los grupos que puedas hacer a través de la opción "Agrupar y ordenar".

A mí la BD me funciona correctamente, el informe que muestra es siempre el del cliente activo en el formulario, que es lo que pedías...

¡Gracias! por toda tu ayuda, intentare rehacer el informe como me has dicho y probare de nuevo todo. 

Muchas gracias y un saludo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas