Foros del Web » Programando para Internet » ASP Clásico »

Buscar Con o sin acentos

Estas en el tema de Buscar Con o sin acentos en el foro de ASP Clásico en Foros del Web. Hola, ya se que esta pregunta ya la han echo varias veces, pero los códigos que han dado como respuestas no me han servido, por ...
  #1 (permalink)  
Antiguo 22/01/2004, 19:29
Avatar de cmartin81  
Fecha de Ingreso: enero-2004
Ubicación: Mexico D.F.
Mensajes: 93
Antigüedad: 20 años, 5 meses
Puntos: 0
Buscar Con o sin acentos

Hola, ya se que esta pregunta ya la han echo varias veces, pero los códigos que han dado como respuestas no me han servido, por favor alguin me puede decir cómo puedo hacer que un buscador de una base de datos en Access me mande todos los resultados que encuentre de la palabra que se le solicita sin importar si tiene o no acentos.

Llevo ya un muy buen tiempo tratando de hacer eso y no he encontrado un código que me sirva, o alguien me pudiera explicar como utilizar esta función?:

function GenerarC(origen)
'Primero normalizo la palabra dejandola sin acentos
origen = Replace(origen, "á", "a", 1, -1, 1)
origen = Replace(origen, "é", "e", 1, -1, 1)
origen = Replace(origen, "í", "i", 1, -1, 1)
origen = Replace(origen, "ó", "o", 1, -1, 1)
origen = Replace(origen, "ú", "u", 1, -1, 1)

'Cambio las vocales por los comodines para buscar con y sin acentos.
origen = Replace(origen, "a", "[áa]", 1, -1, 1)
origen = Replace(origen, "e", "[ée]", 1, -1, 1)
origen = Replace(origen, "i", "[íi]", 1, -1, 1)
origen = Replace(origen, "o", "[óo]", 1, -1, 1)
origen = Replace(origen, "u", "[úuü]", 1, -1, 1)

GenerarC = origen
end function
__________________
_______________________________
Carlos Martin J.
  #2 (permalink)  
Antiguo 23/01/2004, 11:35
 
Fecha de Ingreso: febrero-2002
Mensajes: 157
Antigüedad: 22 años, 3 meses
Puntos: 0
porque no usas un LIKE en tu query que rescata la informacion??, asi te ahorras tener que hacer replace de cada letra.

select * from TABLA where CAMPO like '%TUVARIABLE%'

con esto debe arrojarte todos los registros que se parezcan, sean con acentos o no.

pruebalo....
  #3 (permalink)  
Antiguo 23/01/2004, 11:49
Avatar de cmartin81  
Fecha de Ingreso: enero-2004
Ubicación: Mexico D.F.
Mensajes: 93
Antigüedad: 20 años, 5 meses
Puntos: 0
Gracias puyehue pero así es como tengo el query y de todos modos al hacer la búsqueda toma en cuenta los acentos, si busco José solo me regresa los José que encuentre y quiero que tambien me regrese los que están como Jose sin acento

Gracias.
__________________
_______________________________
Carlos Martin J.
  #4 (permalink)  
Antiguo 23/01/2004, 12:56
 
Fecha de Ingreso: agosto-2003
Mensajes: 20
Antigüedad: 20 años, 9 meses
Puntos: 0
Hola.

Yo creo que si haces esto te funcionará

origen = "José"
sinacento = Replace(origen, "á", "a)
sinacento = Replace(sinacento, "é", "e")
sinacento = Replace(sinacento, "í", "i")
sinacento = Replace(sinacento, "ó", "o")
sinacento = Replace(sinacento, "ú", "u")

sqltxt = "Select * from tabla where Nombre = '" & origen & "'"
sqltxt = sqltxt & " or Nombre = '" & sinacento & "'"

Esto te debería devolver tanto con como sin acento.

Saludos.
  #5 (permalink)  
Antiguo 23/01/2004, 14:18
Avatar de cmartin81  
Fecha de Ingreso: enero-2004
Ubicación: Mexico D.F.
Mensajes: 93
Antigüedad: 20 años, 5 meses
Puntos: 0
Tampoco me funcionó, me sigue mostrando solo las palabras tal y como las busco, si le pongo hacentos, solo me muestra las que tienen acentos y no me muestra las que no lo tienen
__________________
_______________________________
Carlos Martin J.
  #6 (permalink)  
Antiguo 24/01/2004, 06:03
 
Fecha de Ingreso: agosto-2003
Mensajes: 20
Antigüedad: 20 años, 9 meses
Puntos: 0
Hola otra vez.

Siento tener que llevarte la contraria, pero tal y como te puse el código si tu buscas "José", en la variable origen tienes "José" y en la variable sinacento tienes "Jose" y por tanto la consulta

sqltxt = "Select * from tabla where Nombre = '" & origen & "'"
sqltxt = sqltxt & " or Nombre = '" & sinacento & "'"

te tiene que devolver tanto José como Jose.

Saludos.
  #7 (permalink)  
Antiguo 28/01/2004, 21:36
Avatar de cmartin81  
Fecha de Ingreso: enero-2004
Ubicación: Mexico D.F.
Mensajes: 93
Antigüedad: 20 años, 5 meses
Puntos: 0
Hola otra vez, disculpa JuanJo.d pero fue un error mío el que hiso que esto no funcionara, lo acomodé como me decías y ya me funcionó, pero ahora el problema está en que me da ambos resultados solo si al buscar la palabra la tecleo con acento, mi nueva duda es como acerlo a la inversa; es decir, si en la base de datos existe la palabra José con acento y yo la busco como Jose sin acento ¿cómo podría hacer que me arroje los resultados de ambas formas también?

Creo que lo que tengo que hacer en este caso es encontrar una forma en que almacene todos los campos de la base de datos y filtre solo los que tienen acentos para despúes eliminarles el acento (con la formula anterior) para poder buscarlo en ambas formas y que como resultado me mande el id de ese registro para que posteriormente el resultado lo regrese pero haciendo referencia a él por medio del id ¿no?
__________________
_______________________________
Carlos Martin J.
  #8 (permalink)  
Antiguo 17/08/2008, 14:59
 
Fecha de Ingreso: febrero-2004
Ubicación: En Copiapó
Mensajes: 52
Antigüedad: 20 años, 4 meses
Puntos: 0
Sonrisa Respuesta: Buscar Con o sin acentos

Hola cmartin81 al final encontraste alguna solución??? Me la das si es que la encontraste por favor que estoy hace un buen rato buscando lo mismo.

Ozk4r
__________________
:pirata:
  #9 (permalink)  
Antiguo 17/08/2008, 18:27
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Respuesta: Buscar Con o sin acentos

no se si te habras fijado, pero este post tiene una antiguedad de 4 años y no obtuvieron respuesta...

pero probablemente te pueda servir ESTA FUNCION

__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 19:30.