Detectar registros duplicados

HOla, soy nuevo en programación y viendo otras respuestas a este
mismo tema he tratado de hacer lo siguiente; en una base de datos
clientes, deseo que un form me indique que el nuevo registro que estoy
tratando de introducir ya existe:
SET DEFAULT TO "d:\Visualfoxpro Proyectos\tiendalafineza\datos"
SET EXCLUSIVE Off
SET TALK OFF
CLOSE DATABASES


SELECT clientes

SET ORDER TO cedula && CEDULA
SEEK (thisform.TxtCedulain.Value)

IF found() then
MESSAGEBOX("Cliente ya extiste")
thisform.TxtCedulain.Value = ''
RETURN .f.
ELSE
WAIT windows 'es nuevo' AT 30,60
DO FORM 'd:\visualfoxpro proyectos\tiendalafineza\formingreso'
thisform.TxtCedulain.Value = ''
ENDIF
ya configure en modi struc database, y esta como principal el indexado el
campo "cedula", el programa nunca reconoce que ya existe un registro
igual, sea nuevo o repetido siempre me lo toma como nuevo, pienso que
nunca hace la búsqueda o comparación.
Espero me ayuden soy novato en programación, gracias

1 Respuesta

Respuesta
1

Podrias probar usando el siguiente codigo

SET DEFAULT TO "d:\Visualfoxpro Proyectos\tiendalafineza\datos"
SET EXCLUSIVE Off
SET TALK OFF
CLOSE DATABASES

auxcedula = alltrim(thisform.txtcedulain.value)

select count(cedula) as ncedulas from clientes where alltrim(cedula) == auxcedula into cursor ccuentacedula

select ccuentacedula
IF ncedulas = 0 or isnull(ncedulas)
WAIT windows 'es nuevo' AT 30,60
DO FORM 'd:\visualfoxpro proyectos\tiendalafineza\formingreso'

ELSE

MESSAGEBOX("Cliente ya extiste")
RETURN .f.
ENDIF

thisform.TxtCedulain.Value = ''

gracias amigo, me sirvió, yo lo había resuelto con un

SCAN FOR thisform.TxtCedulain.value = cedula

.....

y me funciono, pero yo no tengo experiencia,soy novato, me imagino que la manera mas correcta es como me lo indicas, ya lo apliqu y funciono a la perfección. muchas gracias amigo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas