Hola a todos.
yo estoy haciendo un buscador de personas por nombre,yo en la base de datos tengo nombres con acentos y si el usuario no pone acento no lo encuentra.Me preguntaba si hay alguna manera de arreglar esto.
gracias
| |||
acentos en buscas Hola a todos. yo estoy haciendo un buscador de personas por nombre,yo en la base de datos tengo nombres con acentos y si el usuario no pone acento no lo encuentra.Me preguntaba si hay alguna manera de arreglar esto. gracias |
| |||
Re: acentos en buscas Buenas, aqui te dejo un copy&paste de una respuesta de JGG en este mismo foro: ------------------------------------------ Hola, Creo que esta función te puede servir: <% Function AccIns(Str) Dim CurLtr For x = 1 To Len(Str) CurLtr = Mid(Str, x, 1) Select Case CurLtr Case "a", "à", "á" AccIns = AccIns & "[aàá]" Case "e", "é", "è" AccIns = AccIns & "[eéè]" Case "i", "ì", "í" AccIns = AccIns & "[iìí]" Case "o", "ò", "ó" AccIns = AccIns & "[oòó]" Case "u", "ù", "ú" AccIns = AccIns & "[uùú]" Case "n", "ñ", "Ñ" AccIns = AccIns & "[nñÑ]" Case Else AccIns = AccIns & CurLtr End Select Next End Function %> Asignas la variable strlocalidad = Request.form("localidad") en la consulta llamas a la función: SQL = "SELECT * FROM Localidades WHERE Localidad LIKE '%" & AccIns(strlocalidad) & "%'" quedándote la consulta SELECT * FROM Localidades WHERE Localidad LIKE 'Esp[aàá][nñÑ][aàá]' De esta manera ya no te tienes que preocupar por el tema de las tildes. Un saludo!! ----------------------------------------- decirte que funciona a las mil maravillas, saludos. |
| |||
Re: acentos en buscas Tambien aprovecho para poner aqui una duda que tengo que tambien tiene relacion con el tema de acentos. Mediante el siguiente codigo resalto los resultados obtenidos tras realizar una busqueda en mi buscador, lo que resalto son las coincidencias de las palabras a buscar con las mismas palabras en el resultado de la busqueda. <% producto=RS("producto") palabras=split(palabra," ",-1,1) cantidad_palabras=UBound(palabras) for c = 0 to cantidad_palabras clave=InStr(1,RS("producto"),palabras(c) ,1) lon=len(palabras(c)) cadena=mid(RS("producto"),clave,lon) producto=Replace(producto,palabras(c),"<b& gt;"&cadena&"</b>",1,-1,1) next %> Funciona bien, menos cuando la palabra del resultado lleva acento, que aunque la encuentra, no la resalta por lo coincidir con la palabra a buscar. (Si la palabra a buscar la introduces con acento entonces si la resalta.) Si alguien sabe como solucionar el tema de que resalte las palabras con acentos, le estaria muy pero que muy agradecido. Gracias y un saludo. |
| |||
Choroy, ya probaste con: clave=InStr(1,RS("producto"),AccIns(palabras(c)),1 ) es decir con tu misma función de búsqueda, para ver si funciona otra idea que puedo darte es que extraigas la palabra del resultado y la compares con la del criterio de búsqueda, si son disitintas verificar si la palabra de resultado lleva el acento, si lo lleva cambiar la palabra del criterio de búsqueda por la coincidencia en el resultado y luego poner el codigo para resaltar el resultado. Como puedes obtener la palabra coincidente del resultado? de la siguente manera me imagino que debe funcionar aun no lo he probado: resultadoRs = Rs("Producto") criterio = Request.Form("palabra") longcri = len(criterio) coincidencia=Instr(1,resultadoRs,criterio,1) criterio=Mid(coincidencia,resultadoRs,longcri). Recuerda que solo son ideas, porque la verdad esta como dificil resaltar las palabras que no coinciden porque la comparación la haces letra por letra... Espero te sirva de ayuda!! Saludes
__________________ Téc. Jason Castillo |