FoxPro/Visual FoxPro - busqueda

 
Vista:

busqueda

Publicado por Luis (72 intervenciones) el 13/05/2005 04:15:58
Buenas, mi problema es k realizo una busqueda con set filter , y me lo muestra en un grid, lo k pasa es que para encontrar algun dato tengo k poner el dato exacto como lo tengo en la tabla y quisiera saber si se podria k me mostrara los datos parecidos al buscado y k aparte si yo tengo los datos en la tabla en minuscula y el k va realizar la busqueda se equivoca y los busca con mayusculas como quiera los encuentre, igual si tiene acentos y el k realiza la busqueda no la pone como quiera la encuentre, espero haberme dado a entender, espero k me puedan ayudar y le doy mis agradecimientos a Manuel k me ha ayudado mucho.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:busqueda

Publicado por Roman Suazo (2723 intervenciones) el 13/05/2005 07:13:33
Experimenta con el SET EXACT OFF o con el $. Con la ultima opcion todo va se mas lento para mas flexible...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:busqueda

Publicado por Manuel (344 intervenciones) el 13/05/2005 17:07:35
1. Recuerda que las instrucciones SET van generalmente en el programa principal.
Set Exact On: Obliga a que las comparaciones sean exactamente iguales
Set Exact Off: Permite que al menos la primera parte sea igual en las comparaciones.
2. Para ignorar mayúsculas y minúsculas, pueden convertirse ambas expresiones en mayúsculas o ambas a mayúsculas.
UPPER(Expresión) Convierte la Expresión a mayúsculas.
LOWER(Expresión) Convierte la Expresión a minúsculas.
Yo prefiero usar UPPER()
Por ejemplo SET FILTER TO UPPER(Campo)=UPPER(Thisform.cajaBusqueda.Value)

3. Pueden buscarse coincidencias con expresiones que empiecen igual, usando "=", o con expresiones que contengan a otras, usando "$". Por ejemplo, la siguiente expresión filtra los registros cuyo campo numtel contenga la expresión "7", es decir '075','0007','0432710',etc.:
SET FILTER TO "7"$numtel
En lugar del valor "7" puede ponerse una variable o un campo, así X$Y (significa X existe dentro de Y)

SELE TuTabla
SET FILTER TO
SET FILTER TO upper(alltrim(Thisform.cajadeBuscar.Value))$upper(alltrim(TuCampo))
GO TOP
Thisform.Refresh
o así:
SET FILTER TO upper(alltrim(Thisform.cajadeBuscar.Value))=upper(alltrim(TuCampo))
GO TOP
Thisform.Refresh
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar