Respuesta de
a
Usuario
¿Qué tipo de criterio tengo que poner en una consulta para que a la hora de buscar un nombre o un apellido o una calle, me busque tanto palabras con acento y sin acento?
Ejemplo
Buscar nombre: Jose
Y me salgan tanto los Jose como los José
Gracias
Experto
Hola que tal, saludos de nuevo, aquí hay un detalle, si tu base de datos ya la tienes hecha y con registros (si es que no son muchos) lo que te recomendaría es hacer una búsqueda doble, es decir, buscar primero el dato sin acento y luego con acento, pero para ello requerirías una instrucción que te detecte primero si la palabra que estas buscando es con acentos, de ahí colocar otra instrucción que te cambie la palabra con acento por una sin acentos, es decir si tu palabra a buscar es José, después de las instrucciones tendrías varacento = "José" y varsinacento = "Jose", y realizas una consulta utilizando la sentencia OR, ejemplo:
SELECT * FROM tblusuarios WHERE tblnombre = varacento OR tblnombre = varsinacento
El detalle en este procedimiento es que las instrucciones a colocar ya no depende de la base de datos sino del lenguaje de programación que utilices, y haciendo algo de investigación no es algo tan simple, y depende muchísimo del manejador de base de datos y del lenguaje de programación.
Ahora, si aun no tienes la base de datos creada, te recomiende hacer lo siguiente que es lo que yo hago siempre "NUNCA METER UN DATO CON ACENTOS", tendrías que hacer todas las previsiones necesarias para que los usuarios de tu sistema no introduzcan datos con acento, ya sea mediante alguna nota en el formulario, mediante capacitación, etc. En mi caso siempre trato de que el usuario ponga los datos en mayúsculas y sin acentos, esto ayuda a que si en un futuro tu necesitas exportar la base de datos no tengas ningún problema de compatibilidad. Ahora, tengo entendido que el MySQL no hace ninguna distinción si tiene acentos o no, así que en conclusión, todo depende de que tipo de base de datos y que lenguaje de programación uses.
Espero haberte ayudado un poco con tu duda, y si gustas puedes comentarme que base de datos usas y que lenguaje, para encontrar una solución especifica a tu problema, y también saber si vas a crear una base de datos nueva o si es una ya existente y con miles de registros, saludos.
Usuario
Hola, ya veo que es algo complicado como me imaginaba.
Lo primero agadecerte la explicación porque está muy completa, muchas gracias.
Tengo una base ya creada y estoy haciendo cambios, añadiendo consultas, etc. Pero es posible que tenga que borrar los datos e ir rellenando de nuevo para corregir muchos errores que había de antes, la habían usado otras personas y claro cada uno escribía las cosas de forma diferente. Ahora me toca ami hacerlo bien, así que poco a poco iré modificando y añadiendo cosas.
Lo de los acentos lo miraremos aver, lo escibimos todo en mayúsculas, y la duda era ponerlos o no, pero para apellidos y callles pues pensamos que lo llevaran puesto y fuera en mayúscula, de todas formas lo consultaré gracias a tu mensaje tan extenso y claro, y veremos como lo hacemos al final.
No se que lenguaje es, yo lo hago con access 2003 y no se de SQL solo uso los diseños, vista diseño, asistentes y ayudas que lleva el programa.
De nuevo muchas gracias por la aclaración, me ha sido de muchísima ayuda.
Un saludo
Experto
Pues mira el Access la ventaja que tiene es que no necesitas saber el SQL para hacer tus consultas, aquí el detalle esta nada más a la hora de realizarlas, respecto a tu problema con los acentos pues si es algo complicado porque requiere programación, mira aquí encontré una solución a ese problema en Access, viene con código y todo:
http://www.todoexpertos.com/categorias/tecnologia-e-internet/bases-de-datos/microsoft-access/respuestas/550945/ignorar-los-acentos
Lo más fácil de tener todos tus datos sin acentos, es que te evitas todo este embrollo de codificar, así simplemente tu harías tu consulta por la palabra JOSE y ya te aparecerían todos y tu estarías seguros de que los datos son los correctos.
Te incluyo un manual de Access 2003
http://www.duiops.net/manuales/access/access.htm
Así también te incluyo un tutorial de SQL para que aprendas un poco que es y para que sirve y como se hacen las consultas
http://www.desarrolloweb.com/manuales/9/
Quedo a la espera de tus comentarios, saludos.
 
Usuario
Muchas gracias por toda la información. Tengo para entretenerme con todos los manuales que me has mandado y ver cómo se ponen los código esos que encontraste.
Repito, muchas gracias
Saludos