Buscar una cadena

Tengo en un solo campo [especificacion] una serie de palabras como ca, cb, cd, ca1, cb1, etc y otro campo [diametro] y resulta que cuando intento filtrar con un combo los diámetros de una especificación "ca" me aparecen los de ca1. El código que escribí fue: Dim QDF As QueryDef, STR As String
Dim MBD As Database
Set MBD = DBEngine(0)(0)
Dim buscado As String
Dim criterio As String
buscado = Me!ESPEC
If Me!prote.Value = True Then
STR = "SELECT DISTINCT MATERIAL FROM CINPUTS "
STR = STR & "WHERE SPECIFIC like '*" & buscado & "*' and " '--- esto me busca todo pero funciona
STR = STR & "TIPO ='" & Me!TIPO & "' "
STR = STR & "ORDER BY MATERIAL;"
Set QDF = MBD.CreateQueryDef("MATERIAL", STR)
Me.Refresh
Form_lista.Refresh

1 respuesta

Respuesta
1
La verdad estoy un poco confundido, ¿me dices que el problema es que al filtrar por "ca" te aparecen los "ca1" cierto? Bueno claramente eso sucede por que en la línea:
STR = STR & "WHERE SPECIFIC like '*" & buscado & "*' and " '
lo estas solicitando fíjate, al decirle
like '*" & buscado & "*'
Le estas diciendo claramente que busque lo que seleccionaste DENTRO de otra cadena, en esencia le estas diciendo
where specifi like *ca* osea que va a encontrar por ejemplo "vacas" por que "ca" esta ahì.
Si deseas que sólo filtre por lo que seleccionaste utiliza:
STR = STR & "WHERE = '"& buscado & "' and " '
Ahora si quieres que filtre por ejemplo "baca1" pero no "ca1" utiliza
STR = STR & "WHERE SPECIFIC like '*" & buscado & "' and " '
Es decir quitas el segundo asterisco, no se si te quedo claro, cualquier cosa vuelves a escribir.
Suerte.
Gajimenb

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas