Validar campos

Tengo un Formulario el Cual sus cuadros de Texto están vinculados a la tabla denominada empleado,
la cual abro en modo de almacenamiento en Buffer (buffermode=3) y por ahí tengo un botón nuevo
el cual contiene la instrucción Append Blank para que me agregue un registro, el problema que tengo es el siguiente, deseo validar que la clave ingresada sea distinta a todas las guardadas
en la tabla y pues esa programación la pongo en el evento lostfocus del cuadro de texto que
contiene el valor de la clave del empleado, al momento de ejecutar mi formulario, pues oprimo
el botón nuevo y me hace el Append, cuando ingreso una clave que ya existe me manda el Fox el siguiente Error: "Se infringe la unicidad de la clave...", es obvio que el error me lo manda porque ingreso una clave repetida o un campo en blanco, Lo que necesito es que el error no me lo mande Fox, lo mande el programa.
Mi rutina pues que me ha funcionado para otros formularios en los cuales manejo el almacenamiento en Buffer en este caso no funciona y es la siguiente:
set deleted off
Select(Thisformset.dataenvironment.cursor2.alias)
locate for clavemp=localiza
If Found()
Messagebox("La Clave que ingreso ya existe")
Endif
set deleted on
Mi pregunta es: ¿Cómo le hago para validar que la clave que ingreso no se repita?

1 respuesta

Respuesta
1
En el evento LOSTFOCUS escribe algo similar a:
LOCATE FOR clavemp == localiza
IF FOUND()
MESSAGEBOX( "La clave ya existe" )
RETURN 0
ELSE
APPEND BLANK
REPLACE MiTabla.clavemp WITH localiza
THIS.ENABLED = .F. && Para evitar "correcciones"
RETURN 0
Endif
La idea es que se ejecute el APPEND BLANK después de validar que la clave no está repetida.
... bueno, eso digo yo.
Víctor.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas