Problema con formulario

Tengo el siguiente problema al momento de ingresar un código que ya existe en la tabla.
La idea es que si existe, lo muestre y me active los botones ELIMINAR, MODIFICAR Y CANCELAR.
Si no lo encuentra me arroje dos wait windows, uno que me indica que el registro no existe y otro que me indica que creara un nuevo registro.
Lo hace sin mayor problema, pero el dilema esta que se salta de igual manera a la instrucción else del código y ejecuta todas las instrucciones que se deberían activar solo cuando no existe el código.
¿Por qué sucede esto?
¿A qué se debe?
Aquí va el código:
IF empty(m.codigo)
wait windows "ESCRIBIR UN CODIGO" TIMEOUT 2
THISFORM.o_textbox1.SETFOCUS
endif
if not empty(m.codigo)
select movimien
locate for thisform.o_textbox1.value == m.codigo
if found()
SCATTER MEMVAR MEMO
THISFORM.refresh
thisform.mostrar
thisform.desactivar
thisform.btnmodificar.visible=.t.
thisform.btneliminar.visible=.t.
thisform.btneliminar.left=210
thisform.btncancelar.left=363
thisform.btnbuscar.visible=.f.
thisform.btncerrar.visible=.f.
thisform.btnguardar.visible=.f.
thisform.combo1.visible=.f.
else
wait windows "CODIGO NO REGISTRADO" timeout 2
wait windows "SE CREARA UN REGISTRO NUEVO" timeout 2
thisform.mostrar
thisform.activar
thisform.btnbuscar.visible=.f.
thisform.btncerrar.visible=.f.
thisform.o_label20.visible=.f.
thisform.o_shape1.visible=.f.
thisform.combo1.visible=.f.
THISFORM.o_textbox3.SETFOCUS
Endif
Endif
Espero me entiendas y puedas ayudarme.
Chao.

1 respuesta

Respuesta
1
A simple vista lo que te propongo es que agregues la sentencia "exit" antes del "else", intentalo y me avisas.
;P
Te agradezco mucho tu ayuda.
Chao.
Sabes, yo creiaque el exit se ocupaba dentro de do while....enddo,
Pero en fin, lo hice y me daba un error de anidamiento, lo que creo que es justamente porque el exit no se ocupa con if, eso creo yo ¿o no?.
En fin, sigo con el mismo problema.
Disculpa, tienes razón, en vez de usar ese 'exit' puedes usar un 'return', sin embargo analizando tu código creo que tienes un problema al hacer la comparación de los códigos, ya que está entrando el 'else'. Verifica si el valor del campo del form 'thisform. o_textbox1. Value' tiene el mismo tipo de datos que el campo 'm. Código'
Por ejemplo que ambos sean numéricos, puedes probar poniendo algunos messagebox() cada vez que haces una comparación para que veas los valores que se están comparando.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas