Filtrar consulta según valores de controles de formulario

Tengo un problema bastante simple que no resuelvo, a ver si me pueden ayudar:

En un formulario, tengo varios controles independientes. También un subformulario cuyo origen de datos es una consulta. Un botón para refrescar el subformulario.

Quiero que se pueda filtrar el resultado de la consulta dependiendo de los valores de varios campos del formulario, algo así:

Esto funciona siempre y cuando ambos controles del formulario tengan valor. El problema lo tengo cuando en uno de ellos no se informa nada.

He intentado, sin éxito, en los criterios, las siguientes soluciones:

- NZ([forms]![Tabla1]![nombre];"*")

- siinm(isnull([forms]![Tabla1]![nombre]);"*";[forms]![Tabla1]![nombre])

Respuesta
1

Finalmente lo resuelvo por código, algo así:

If IsNull(Me.nombre.Value) Or Me.nombre.Value = "" Then
Else
    a = "[nombre]= '" & Me.nombre.Value & "'"
    p = 1
End If
If IsNull(Me.cantidad.Value) Or Me.cantidad.Value = "" Then
ElseIf p = 1 Then
    a = a & " and [cantidad]= " & Me.cantidad.Value & ""
Else
    a = "[cantidad]= " & Me.cantidad.Value & ""
End If
Forms![Tabla1]![Subformulario Consulta1].Form.Filter = a
Forms![Tabla1]![Subformulario Consulta1].Form.FilterOn = True
Forms![Tabla1]![Subformulario Consulta1].Requery

1 respuesta más de otro experto

Respuesta
1

Mucho mas sencillo, ponlo como en la imagen

Si dejo los cuadros de texto en blanco y pulso el botón

Me saca todos

si por el contrario en texto 4 pongo un país

Si no pongo país pero sí una ciudad, en este caso Madrid

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas