Crear formulario para filtrar y ejecutar diferentes informes según selección

Tengo una BD con las Tablas Fichas y Actuaciones.

He creado varias consultas y asociado un informe a cada consulta, creando un botón para cada uno que ejecuta una macro. Me funciona todo correctamente pero me gustaría hacerlo más "elegante".

Había pensado en crear un formulario no asociado a ninguna tabla donde introducir una serie de datos, y que según los datos que se introduzcan, ejecute un informe u otro mediante código VBA, teniendo en cuenta lls datos del filtro

¿Es posible?

2

2 respuestas

Respuesta
1

Claro que es posible, todo depende de como quieres "hacer" ese filtro. Su pongamos que tienes un formulario Principal con un cuadro combinado llamado(Propiedades-Otras-Nombre) Elegir, donde te aparecen los diferentes Informes. En las propiedades del combinado Elegir-Eventos-Después de actualizar, crea un procedimiento de evento y entre Private Sub y End Sub escribe

DoCmd. OpenReport Me. Elegir, acPreview

En el caso de que quisieras que fuera en un registro en particular

DoCmd.OpenReport Me.Elegir, acPreview,,"idloquesea=forms!nombredelformulario!idOtracosa"

Donde idloquesea e idotracosa son criterios para identificar un registro en particular.

Ya te digo que todo depende de como quieras elegirlo.

Tengo un formulario que alimenta la Tabla Actuaciones.

Tengo las consultas:

- 1: Que crea un informe con una hoja de informe por registro

- 2: Te pide ficha y crea un registro por hoja

- 3: Te pide ficha y fecha de actuaciones dentro de esa ficha

- 4: Los mismo que la 1 pero suma en cada hoja los registros con la misma fecha

- 5: Lo mismo que la 2 pero suma por día

- 6: Lo mismo que la 3 pero suma por día

- 7: Lo mismo que la 2 pero resumen mensual

... Y así alguno más con diferentes clausulas de búsqueda en la consulta

Lo que quiero es un formulario que según se rellene el campo ficha, fecha o alguno otro y mediante algún flag de suma dia/suma mes ejecute directamente el informe que corresponda

Tienes que usar la instrucción select case en el evento después de actualizar de alguno de los cuadro de texto, ya sea

select case Ficha

case is=...

docmd.openreport"informe1",acpreview,,"Total=forms!....

case is=...

Docmd.openreport"informe2",acpreview,,"month([fecha]=....

ya sea

Select case Dsum("total",.....

Si quieres, mándame una copia de tu base, con un par de registros inventados para que pueda echarle un vistazo y te pueda aconsejar mejor, mi correo es [email protected]

Si lo haces, en el asunto del mensaje pon tu alias Javi Muñoz, porque si no, ni los abro.

Un saudo

Respuesta
1

Javi: En la web de Neckkito y entre varios ejemplos de Filtros, si quieres mira éste.

http://siliconproject.com.ar/neckkito/index.php/ejemplos-explicados/todos/93-ejemplos-explicados/ejemplos-de-formularios/194-crear-un-filtro-multiple 

Y si recorres la página verás que hay algún otro

Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas