Abrir formulario de forma condicional

Tengo una base de datos con dos tablas relacionadas.

Para introducir los datos tengo un formulario "form1", dependiente de la tabla 1, en el que se inserta un subformulario "subform" que depende de la segunda tabla.

Estoy intentado construir en el evento al abrir un código que me permita abrir el "form1" con dos condicionantes:

1º.- Que recoja sólo los registros del campo "fecha" del "subform" que cumpla condición

month([fecha])<month(Date())

2º.- Que recoja sólo los registros del campo "campo1" del "form1" que cumpla la condición

campo1=true

he probado esto y no funciona:

DoCmd.OpenForm "form1", , , "subform", month([fecha])<month(Date())" and me.campo1=true

Respuesta
2

Si me lo permites, lo que planteas, tal como lo planteas (o al menos como yo lo interpreto) no tiene mucho sentido...¿usar el evento al abrir de un formulario para abrir el mismo formulario "filtrado" con unas condiciones? No lo acabo de ver...

Hay una forma simple de hacer lo que pides, sin necesidad de código, dado que por lo que interpreto esas condiciones van a ser "fijas", y es usar las propiedades "Filtro" y "Filtrar al cargar" del formulario:

1º En el formulario principal, sacas sus propiedades, te vas a la pestaña "Datos" y en "Filtro" le pones: [Campo1]=True

2º En la propiedad siguiente, "Filtrar al cargar", le pones: Sí

3º En el subformulario, haces lo mismo: sacas sus propiedades, pestaña Datos, "Filtro": Month([Fecha])<=Month(Date()) y "Filtrar al cargar": Sí

También le puedes aplicar los filtros a los formularios por código, por ejemplo en el evento al cargar del formulairo principal:

Me.Filter="Campo1=True"

Me.FilterOn=True

Me.nombreSubform.Form.Filter="Month(Fecha)<=Month(Date())"

Me.nombreSubform.Form.FilterOn=True

Un saludo.


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas