PDA

Ver la Versión Completa : Like


Jose_Pérez
09-07-2003, 11:38:57
Hola a todos:

A ver si esto se puede hacer de algún modo.

Supongamos que tengo una tabla en DBASE que contiene un campo llamado APELLIDOS. Entre los cientos de registros que contiene, los datos de dos de ellos son los siguientes:

PÉREZ DÍAZ
PÉREZ PÉREZ

En mi proyecto he colocado un TEdit para que el usuario escriba el apellido que busca y un botón que cuando es pulsado activa la correpondiente consulta SQL.

Para facilitar las cosas al usuario, he programado la consulta SQL de modo que se puedan realizar búsquedas por abreviaciones. Por ejemplo, si en el TEdit el usuario escribe PÉR DÍA, la consulta encuentra al señor PÉREZ DÍAZ.

Select APELLIDOS From Tabla Where APELLIDOS Like %PÉR% And APELLIDOS Like %DÍA%

De este modo, si el usuario quiere buscar a todos los señores que se apelliden PÉREZ, escribiría en el TEdit la palabra PÉR, y la consulta encuentra a los señores PÉREZ DÍAZ y PÉREZ PÉREZ.

Select APELLIDOS From Tabla Where APELLIDOS Like %PÉR%

El problema aparece cuando el usuario escribe en TEdit PÉR PÉR (2 veces) con la intención de localizar sólamente al señor PÉREZ PÉREZ.

Select APELLIDOS From Tabla Where APELLIDOS Like %PÉR% And APELLIDOS Like %PÉR%

Evidentemente, esto no funciona como desea el usuario. La consulta encuentra al señor PÉREZ PÉREZ, pero también a PÉREZ DÍAZ.

¿Hay algún modo de resolver esto.? Ahhh... ¡y no me sirve crear dos campos (uno para cada apellido)!.

Un abrazo.

NOTA: Ayer intenté colgar este hilo, pero algo no funcionó. Espero que ahora no aparezca el mismo tema dos veces en el foro.

javiermorales
09-07-2003, 11:51:41
Podrías unirlo de la siguiente manera:

Select APELLIDOS
From Tabla
Where APELLIDOS Like %PÉR%PÉR%

Te localizaría PÉREZ PÉREZ

Jose_Pérez
09-07-2003, 14:35:32
Hola Javier:

Funciona perfectamente. Muchísimas gracias.

¿Que sería de mi sin este foro?

De nuevo gracias.