Ayuda con form. Necesito guardar y/o Actualizar

hice un form con un botón guardar pero quisiera un ejm para saber si actualiza y/o guarda un nuevo registro lo hice así pero no funca:

usuario=thisform.txtUsuario.Value
nombre=thisform.txtNombre.Value
apellidos=thisform.txtApellidos.Value
dni=thisform.txtdni.Value
clave=thisform.txtClave.Value
reclave=thisform.txtreclave.Value
fini_vigencia=DATE()
ffin_vigencia=thisform.txtffin_vigencia.Value
*!*IF clave==reclave
DO CASE
CASE EMPTY('usuario')
vSql="insert into Usuario(codigo,password,nombre,apellidos,dni,fini_vigencia) values ('"+m.usuario+"','"+m.clave+"','"+m.nombre+"','"+m.apellidos+"','"+m.dni+"','"+m.fini_vigencia+"')"
myvsql=sqlexec(Handle,vSql)
IF handle > 0
WAIT WINDOW('Se guardo exitosamente')
thisform.actualizar
ELSE
WAIT window('No se Guardo !!!')
ENDIF
CASE NOT EMPTY('usuario')
vSql="update Usuario set passsword = '"+m.clave+"',nombre = '"+m.nombre+"',apellidos ='"+m.apellidos+"',dni = '"+m.dni+"'"
myvsql=SQLEXEC(Handle,vSql)
IF Handle > 0
WAIT WINDOW ('Se Actualizo exitosamente')
thisform.actualizar
ELSE
WAIT window('No se Actualizo!!!')
ENDIF
ENDCASE

1 respuesta

Respuesta

Yo en mis formularios utilizo un código mas sencillo, para agregar y/o modificar, te paso un breve ejemplo...

**Me ubico en la tabla de trabajo***
USE USUARIOS
**Busco el registro que se dará de alta***
LOCATE FOR CLAVE = THISFORM.TEXT1.Value

**Si encontró**

IF FOUND()

**Remplazo todos los campos de registro de la DBF con los campos del FORM y mando un mensaje diciendo "Registro Modificado", porque si se encontró ese registro y se cambiaron campos o no se entiende que se quería modificar***

REPLACE USSER WITH THISFORM.TEXT2.Value
IF EMPTY(THISFORM.TEXT4.Value)
REPLACE PASS WITH THISFORM.TEXT3.Value

MESSAGEBOX("Registro Modificado")

**Si no lo encontró, entonces agrego un APPEND BLANK y doy de alta ese registro, mandando al final un mensaje diciendo "Registro dado de alta"
ELSE

APPEND BLANK
REPLACE PASS WITH THISFORM.TEXT4.Value
THISFORM. ReLEASE

MESSAGEBOX("Registro dado de alta")
Endif
Es un código muy sencillo, pero igual espero te puedas dar una idea.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas