Pregunta:
pregunta de ACCESS?
2007-03-24 06:08:57 UTC
amigos, tengo una base de datos donde realizo mis facturas, y en el formulario donde lleno los campos a facturar siempre que quiero imprimir una factura que esta en (informes) siempre me imprime todos los registros de la base de datos, ya me canse de buscarle y no puedo lograr hacer que el formulario actual se imprima en el informe de factura... logre hacer que se imprima el formulario actual, pero sale completo tal y cual es el diseño de mi base y asi no lo quiero porque me hecha a perder mi factura.... entonces lo que yo quiero es que imprima el informe de mi factura que estoy llenando en mi formulario!!! me estoy volviendo loco con ese access!!! alguien me podria ayudar... gracias y espero respuesta lo mas pronto posible! saludos.
serch.
Tres respuestas:
pablitar
2007-03-24 08:50:19 UTC
Bien, probé diversas cosas. La mayoría tenía una falla fuerte o era poco versátil. Finalmente, lo mejor que encontré fue utilizar el generador de código para actualizar la propiedad filter del informe.

Por suerte no es muy difícil:



Vas al diseño del informe que usas para imprimir las facturas, hacés click derecho sobre cualquier objeto, y tocás "generar evento". Seleccionás después la opción "generador de código".

Dependiendo del objeto sobre el que hayas hecho click, te va a aparecer algún código pregenerado, definiendo un procedimiento de evento. Esto podés borrarlo, pero si lo dejás no hace más que ocupar un poquito deespacio. La base funciona igual. Escribís en la ventana de código lo siguiente:



Private Sub Report_Open(Cancel As Integer)

Me.Filter = "[Nº de Factura] Like " & Forms![a cobrar]![Nº de Factura]

Me.FilterOn = True

End Sub



Esto lo que va a hacer es que cuando abras el informe (Report_Open) actualice la propiedad Filter del informe, y la active. Filter es como una instrucción SQL, pero un poco mas simple.



Hay algunas cosas que vas a tener que cambiar del código:



-El "Me" hace referencia al informe actual. Como el generador de código lo abriste desde el informe, esto no hace falta que lo cambies.

-El "Nº de factura" es el nombre del campo a través del cual aplicas el filtro. Cambialo por el nombre del campo que vayas a usar para filtrar. Yo te recomendaría que uses el campo clave principal porque ese sí o sí te va a dar una sola coincidencia. Los otros puede ser que no.

-El "a cobrar" es el nombre del formulario, es decir, si tu formulario se llama "form1" por ejemplo, en vez de "a cobrar" ponés "form1".

-Aparece de nuevo "Nº de Factura". Es el nombre del campo en el formulario.



Es importante que pongas todas las comillas, corchetes y demás carácteres tal cual los puse. Lo único que querrías cambiar es lo que te detallé mas arriba... A menos que sepas un poco de código de visual... En ese caso, hacé lo que quieras :).



Una cosa a tener en cuenta: Si el formulario de origen (en el ejemplo, "a cobrar" no está abierto, te va a decir que no existe. Entonces, antes de abrir el informe deberías siempre abrir el formulario. Podrías hacer una validación, pero eso es un poco mas complicado. Si querés hacerla (y no sabés como :P), escibime a mi mail.



Perdón por meter el código, que muchas veces molesta, pero creeme que probé con otras cosas, como el generador de expresiones, y siempre había alguna falla. Access apesta a veces...



Espero que te sirva, y que no me esté olvidando de nada :).
D@niel S
2007-03-24 07:44:41 UTC
Tienes que crear una consulta que te muestre solo el ultimo comprobante generado, luego al informe los basas en esa consulta y no en la tabla de facturas
xspecie
2007-03-24 07:38:44 UTC
Lo unico que tienes que hacer es al momento de llamar el reporte decirle por ejemplo si es para un periodo, o una clave, u otra es crear una sentencia sql que solo muestre los resultados que deseas y esos mandarselos al informe.


Este contenido se publicó originalmente en Y! Answers, un sitio web de preguntas y respuestas que se cerró en 2021.
Loading...