Búsqueda con 2 cuadros de texto

Hola experto, me gustaría saber si puedes ayudarme, tengo una tabla con valuaciones de vehículos, un formulario de consulta con dos cuadros de texto donde coloco en uno marca y en el otro modelo, un botón para ejecutar la consulta y un subformulario en donde muestra el resultado de la búsqueda con los demás datos que necesito. El problema lo tengo con este código:
Private Sub CmdFiltro_Click()
If Nz(Me.Texto1, "") = "" Then
MsgBox "Introduzca algun valor en el cuadro de texto"
Else
Me.TABLA_Consulta.Form.Filter = "Marca like '*" & Me.Texto1 & "*'"
Me.TABLA_Consulta.Form.FilterOn = True
End If
End sub
Para un cuadro de texto perfecto, pero lo que no se como hacer para que tome la búsqueda de los dos cuadros de texto juntos (o sea que busque coincidencias de marca y modelo a la misma vez). Espero haber sido claro en la explicación y de ser así que puedas darme una mano. Gracias de antemano y saludos.
Gustavo

1 respuesta

Respuesta
1
Debes concatenar los filtros. Imaginemos las posibilidades del usuario:
- Puede seleccionar una marca, pero no un modelo
- Puede seleccionar una marca y un modelo
- Puede ser muy listo y seleccionar directamente un modelo
- Puede no seleccionar nada y querer verlo todo
Se trata de crear un filtro que vaya añadiendo las condiciones necesarias. Dado que la ultima posibilidad es verlo todo, debemos crear un filtro que no interfiera en los resultados. Ese filtro es el que utilizamos siempre:
Dim strFiltro As String
strFiltro = "1=1" ' irrefutable, verdad?
' si el usuario ha escrito algo en el txt de la marca, añadimos el filtro
If Trim(Nz(Me!txtMarca, "")) <> "" Then
  strFiltro = strFiltro & " AND Marca Like'*" & Me!txtMarca & "*'"
End If
' si el usuario ha escrito algo en el txt del modelo, añadimos el filtro
If Trim(Nz(Me!txtModelo, "")) <> "" Then
  strFiltro = strFiltro & " AND Modelo Like '*" & Me!txtModelo & "*'"
End If
Me!TABLA_Consulta.Form.Filter = strFiltro
Me!TABLA_Consulta.Form.FilterOn = True
Espero te sirva
http://www.aesoft-databases.com

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas