Seguro muy sencillo para ti

Hola,
Seguro que es muy sencillo para un experto. Me explico:
Tengo un formulario abierto (form1) con los campos de la tabla1:
codpro (numérico)
fechafin (fecha)
Necesito abrir otro formulario (form2 con los mismos campos (codpro y fechafin y también de la tabla1)) y que al cargar el segundo me filtre los registros, mostrando sólo los que coincidan codpro=codpro del primer formulario y fechafin vacío
Que me muestre los coincidentes de codpro lo he conseguido ...
Private Sub Form_Load()
Me.Filter = "codpro Like '*' & Forms!form1!CODPRO &'*' "
Me.FilterOn = True
End Sub
... Pero ahora me falta sólo que filtre los que tienen nulo el campo fechafin.
Supongo que será añadiendo un AND a la expresión, pero no sé construir su sintaxis.
¿Me puedes ayudar?
Gracias
Respuesta
1
No es complicado... un condicional lo pones entre paréntesis (para que quede más claro)
"(codpro like..." & forms!form1... & ") AND (isnull(...!fechafin))"
Espero te sirva. Slds

2 respuestas más de otros expertos

Respuesta
1
Te recomiendo que construyas una cadena (string) con los datos que necesites pasar como filtro. Así tendrás:
Private Sub Form_Load()
Dim Filtro As String
Filtro = "SELECT codpro, fechafin FROM tabla1 WHERE ((codpro=[Forms]![Formulario1]![codpro]) AND (fechafin) Is Null))"
Me.Filter = Filtro
Me.FilterOn = True
End Sub
Antes de nada comprueba que la instrucción SQL está bien: copia desde SELECT hata el último paréntesis, abre una consulta en vista SQL y pégala, vuelve a la vista diseño y ejecutala; si la instrucción es correcta te debería pedir el valor del parámetro Formularios! Formulario1! Codpro, pon un código y prueba.
Respuesta
1
Prueba esta sentencia
Me.Filter = "codpro Like '*' & Forms!form1!CODPRO &'*' AND fechafin<>null"
Me queda una duda de si tiene que tener una comilla más pero esa es su estructura
Gracias por tu ayuda, en realidad es ... AND FECHAFIN Is Null" porque lo que quiero es que me salgan los que no contienen datos NO los que tienen datos que sería como tú dices.
Muchas gracias
Ok que bueno que te sirvió si tienes otra duda ponla o finaliza la pregunta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas