Buscar valor en todos los campos sin tener en cuenta signos ortográficos

Es una pregunta para Sveinbjorn El Rojo

Hola

Tengo un formulario "F_Libros" cuyos datos los coge de la tabla "LIBROS".

Quisiera buscar los datos en un cuadro de texto mediante un botón. La búsqueda se haría en todos los campos. Hay en total de 7 campos.

El único problema es que los valores a buscar deberían no tener en cuenta algunos signos ortográficos.

Por ejemplo

Si busco "lista" quiero me encuentre:

"lista:"

"lista,"

" Lista " (espacio antes y después de la palabra)

" Lista" (espacio antes de la palabra)

"lista " (espacio después de la palabra)

Pero no quiero que me devuelva también:

"listado"

"colista"

1

1 respuesta

Respuesta
1

Imagino que esta consulta es continuación de esta otra: Optimizar código para búsqueda de registros

Como no sé por qué método optaste al final, te hago una indicación:

Cuando crees la parte del WHERE (o los criterios de la consulta) hazlo de esta forma (te lo pongo con el ejemplo de "lista"):

WHERE Campo LIKE  "* lista *" OR Campo LIKE  "* lista" OR campo LIKE  "lista *" OR campo LIKE "lista[,.;:]"

El primer like es para buscar los que tengan tu palabra con un espacio antes y despues;

El segundo para los que tienen solo un espacio antes (fin del campo);

El tercero para los que tienen un espacio después de la palabra (inicio de campo)

El cuarto es para los que tienen alguno de los signos entre los corchetes a continuación de la palabra.

Ahora sólo te queda modificar el código que tienes (o los criterios de tu consulta) para añadirle estas opciones.

Hola

Sí tiene que ver con esa pregunta lo que pasa que no tengo claro como debería quedar el código SQL en el botón de buscar, evento "al hacer click".

Hablamos de crear una consulta y poner ahí en criterios los "like" y poner luego en el botón Buscar del formulario, como recordsource, el nombre de la consulta

recordsource="nombre de consulta"

También me propusiste un combo pero esto no me buscaba a la vez en todos los campos, simultáneamente...

Lo que preferiría al final pero no supe hacerlo es crear una SQL en el botón "Buscar", que me recogiera todas las especificaciones de la búsqueda.

Lo que está genial es lo que me has puesto ahora de:

WHERE Campo LIKE  "* lista *" OR Campo LIKE  "* lista" OR campo LIKE  "lista *" OR campo LIKE "lista[,.;:]"

Simplifica mucho el código poner like  "lista[,.;:] pero cómo sería todo el código completo?

Yo he pensado esto para que busque simultáneamente en todos los campos del formulario pero no funciona:

Recordsource =select * from TLibros WHERE Campo1 LIKE  "* lista *" OR Campo1 LIKE  "* lista" OR campo1 LIKE  "lista *" OR campo1 LIKE "lista[,.;:]" _

or Campo2 LIKE  "* lista *" OR Campo2 LIKE  "* lista" OR campo2 LIKE  "lista *" OR campo2 LIKE "lista[,.;:]" or... y así hasta poner todos los campos del formulario donde tiene que buscar.

¿Sería así la SQL? Por favor indícame el código completo para no liarme.Y muchas gracias por todo.

Suponiendo que tu cuadro de texto se llame txtBuscar:

Recordsource ="select * from TLibros WHERE Campo1 LIKE  '* " & Me.txtBuscar & " *' OR Campo1 LIKE  '* " & Me.txtBuscar & "' OR campo1 LIKE  '" & Me.txtBuscar & " *' OR campo1 LIKE '" & Me.txtBuscar & "[,.;:]' OR Campo2 LIKE  '* " & Me.txtBuscar & " *' OR Campo2 LIKE  '* " & Me.txtBuscar & "' OR campo2 LIKE  '" & Me.txtBuscar & " *' OR campo2 LIKE '" & Me.txtBuscar & "[,.;:]' OR ...

Fíjate en las comillas o te dará error

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas