Programa en Visual Fox Pro, instrucciones para crear búsquedas

Hola experto, bueno mi problema es el siguiente, en VFP 6 estoy haciendo un programa en donde tengo un espacio de búsqueda por el cual quiero que me busque por NOMBRE porque hay números que se repiten muchísimo y eso no se puede cambiar, así debe de ser, pero lo he intentado y no he podido, ¿se necesita alguna instrucción especal?
Yo lo hago de dos formas pero no sale, la primera es:
if (nombre==nomb)
y la segunda es:
if found()==.t.

1 Respuesta

Respuesta
1
Proba de esta manera:
SELE mi_tabla
LOCATE FOR ALLTRIM(cadena_a_buscar) $ ALLTRIM(mitabla.nombre)
IF FOUND()
&& Encontro la cadena
ELSE
&& La cadena a buscar no se encontro
ENDIF
***************************************
O sino, proba de esta otra manera:
SELE mi_tabla
LOCATE FOR LIKE(ALLTRIM(cadena_a_buscar), ALLTRIM(mitabla.nombre))
IF FOUND()
&& Encontro la cadena
ELSE
&& La cadena a buscar no se encontro
ENDIF
***************************************
Ademas, tenes que poner en el INIT del formulario lo siguiente:
SET EXACT ON
Con esta linea vas a forzar a que la búsqueda sea exacta. Otras de las cosas que tienes que tener en cuenta es que si en la tabla guardas el nombre con mayúscula y en el formulario ingresas la búsqueda con minúscula, nunca va a encontrar una coincidencia en la búsqueda, si tienen este problema en la búsqueda tendrías que cambiar la linea del LOCATE por este código:
LOCATE FOR UPPER(ALLTRIM(cadena_a_buscar)) $ UPPER(ALLTRIM(mitabla.nombre))
O bien, si se trata del segundo ejemplo la linea del LOCATE tendría que ser esta:
LOCATE FOR LIKE(UPPER(ALLTRIM(cadena_a_buscar)), UPPER(ALLTRIM(mitabla. Nombre)))
Con la función UPPER convertís las cadenas en mayúscula.
Espero que te sirva, de lo contrario, estoy aquí para ayudarte, Suerte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas