FoxPro/Visual FoxPro - Busqueda por coincidencias

   
Vista:

Busqueda por coincidencias

Publicado por Osmin (6 intervenciones) el 17/04/2008 23:06:44
hola tengo una consulta con un text y una grid lo que quiero es que haga una busqueda en la tabla de todos los datos coincidentes por ejemplo: si escribo en el text
JULIO RODRIGUEZ debe de filtrarme todos los nombres que comienzan con JULIO y todos los demas nombres que se apellidan RODRIGUEZ.
aplico este codigo:
select * from tabla where UPPER(CAMPO) LIKE ("%"+UPPER(THISFORM.TXT1.VALUE)+"%" )

este codigo me filtra todos los JULIO solo cuando escribo el primer nombre pero al escribir el nombre completo solo me muestra el dato exacto o sea JULIO RODRIGUEZ

Lo que quiero es que si escribo un nombre completo o sea JULIO RODRIGUEZ u otro nombre quiero que me filtre:

- Todos los nombres que comienzan con JULIO (aunque termine con apellido diferente)

-Todos los que se apellidan RODRIGUEZ (aunque su primer nombre sea diferente)

Esto quiero que lo haga con cualquier nombre que escriba.
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 por coincidencias

Publicado por Manuel Medina (332 intervenciones) el 18/04/2008 06:51:35
Que tal

Pero es que si tu escribe JULIO ya con esto termina porque te mostrara todos los julio sin importar apellidos

SELECT FROM TABLA NOMBE,APELLIDOS WHERE NOMBRE= ALLTRIM(TEXT1)

Ahora no se como estan los campos, si a pellidos y nombres estan juntos en un campo de la tabla o si estan dividido.

seguiré tu pista
hasta luego
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

RE:Busqueda por coincidencias

Publicado por kong (681 intervenciones) el 18/04/2008 11:08:54
nombrecampo="NombredelCampo"
frase=" "+ALLTRIM(thisform.text1.Value)+" "
CuentaPalabras=OCCURS(" ",frase)-1
IF LEN(ALLTRIM(frase))>0
FOR a=1 TO CuentaPalabras
IF a>1
condicion=condicion+" OR "+"'"+UPPER(STREXTRACT(frase," "," ",a));
+"'"+"$UPPER("+nombreCampo+")"
ELSE
condicion="'"+UPPER(STREXTRACT(frase," "," ",a))+"'"+"$UPPER;
("+nombreCampo+")"
ENDIF
ENDFOR
condicion="("+condicion+")"
SELECT * FROM mitabla WHERE &condicion INTO micursor
ENDIF

..............................
Solo tienes que cambiar el nombre del campo, mitabla, y micursor....Y la rutina es tuya.
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

RE:Busqueda por coincidencias

Publicado por kong (681 intervenciones) el 18/04/2008 11:49:02
ahora mi pregunta es: Como ordenar los resultados basado en la mayor coincidencia?
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

RE:Busqueda por coincidencias

Publicado por Plinio (7771 intervenciones) el 18/04/2008 13:59:33
Comienza leyendo en la ayuda ATC()
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