Problema al guardar registros con el replace

Hola experto, tengo un programa muy simple pero me causa mucho problemas, cuando ingreso y guardo cierta cantidad de registros, sale un mensaje de error.

"miprograma.exe ha detectado un problema y debe cerrarse.

Si esta en pleno proceso, puede perderse la información con la que este trabajando"

y muestra tres botones Depurar, Enviar informes de errores, no enviar.

Esto es lo único que tengo en mi botón guardar, por favor ayuda

IF thisform.Text1.value > date()
=messagebox("La fecha de ingreso debe ser < a la fecha actual","Mensaje del sistema")
thisform.Text1.setfocus
ELSE
IF empty(thisform.Text1.value) or empty(thisform.text2.value) or empty(thisform.text3.value)or empty(thisform.text5.value)
=messagebox("Registros incompletos","Mensaje del sistema")
thisform.grupo1.option1.setfocus
ELSE
IF thisform.grupo1.option1.value=1
se="CHMS"
ENDIF
IF thisform.grupo1.option2.value=1
se="CMSS"
ENDIF
IF thisform.grupo1.option3.value=1
se="CMSE"
ENDIF
IF thisform.grupo1.option4.value=1
se="CMSSI"
ENDIF
************************************
IF thisform.grupo1.option1.value=1
mues1="POR"
ELSE
mues1=" "
ENDIF
IF thisform.grupo1.option2.value=1
mues2="POR"
ELSE
mues2=" "
ENDIF
IF thisform.grupo1.option3.value=1
mues3="POR"
ELSE
mues3=" "
ENDIF
IF thisform.grupo1.option4.value=1
mues4="POR"
ELSE
mues4=" "
ENDIF
IF messagebox("Desea grabar los registros",36,"Mensaje del Sistema")=6
SELEC consultas
APPEND blank
REPLACE fecha with thisform.Text1.value
REPLACE orden with thisform.text2.value
REPLACE pac_hc with thisform.text5.value
REPLACE nombres with thisform.text3.value
REPLACE programa with thisform.text6.value
REPLACE habitacion with thisform.text4.value
REPLACE medico with thisform.text8.value
REPLACE especi with thisform.text7.value
REPLACE otros with thisform.edit1.value
REPLACE resultado with thisform.edit2.value
REPLACE sed_codigo with se
REPLACE mue1 with mues1
REPLACE mue2 with mues2
REPLACE mue3 with mues3
REPLACE mue4 with mues4
thisform.x_borrar
ENDIF
ENDIF
ENDIF

1 Respuesta

Respuesta
1

Espero poder ayudarte! Gracias por consultar. Ese error se produce por problemas con windows! :¿O En que momento exacto te sale el error? Imagino que tu aplicación se cierra al salir el error! Hmmm lo que puedo observar es un poco de sobrecargo en condiciones en tu código. Aclaro... no es que fox no tenga la capacidad de procesar todas la transacciones.. pero siempre es bueno ayudarle un poco también, resumiendo condiciones para agilizar los procesos! :D

¿Cuál es la condiciones principal para realizar el guardado? En base a esa, podemos armar un solo bloque. :D Te sugiero... en mi humilde opinión, si vas a agregar un registro nuevo a la tabla consultas, porque no usar INSERT INTO en lugar de Append Blank.. ¿Replace? OO Aclarame para poder ayudarte, con muchísimo gusto! :D

Hola y gracias por el comentario, realize los cambios necesarios y probé solo con la linea del append blank y el replace pero igual muestra el error.

El error sale cuando cuando estoy guardando registros puede ser en el quinto o décimo registro inclusive sale error a veces hasta en el segundo registro.ingresado.

Sabes cuando coloco muy seguido este signo - en el edit es cuando sale el error mas seguido.

La versión con la que estoy programado es la 5.0 usted cree que puede tener estas limitaciones de signos.

Me gustaría probar guardar con el insert into aunque nunca lo había usado me podrías ayudar con un ejemplo gracias , por ejemplo en el caso que necesito darle una condición como en el replace cuando coloco ejemplo replace campo1 with campo2 for campo2 = "Perez" seria bueno... Gracias de antemano

**--

IF thisform.Text1.value > date()
=messagebox("La fecha de ingreso debe ser < a la fecha actual","Mensaje del sistema")
thisform.Text1.setfocus
ELSE
IF empty(thisform.Text1.value) or empty(thisform.text2.value) or empty(thisform.text3.value)or empty(thisform.text5.value)
=messagebox("Registros incompletos","Mensaje del sistema")
thisform.grupo1.option1.setfocus
ENDIF

**--//

**--Evaluamos las posibles condiciones de "se"

DO CASE

CASE thisform.grupo1.option1.value=1

se="CHMS"

CASE thisform.grupo1.option2.value=1
se="CMSS"
CASE thisform.grupo1.option3.value=1
se="CMSE"
CASE thisform.grupo1.option4.value=1
se="CMSSI"
ENDCASE
***--//

**--Evaluamos las posibles condiciones para "mues"

DO CASE

CASE thisform.grupo1.option1.value=1
mues1="POR"

CASE thisform.grupo1.option1.value = 0
mues1=" "

CASE thisform.grupo1.option2.value=1
mues2="POR"

CASE thisform.grupo1.option2.value=0

mues2=" "

CASE thisform.grupo1.option3.value=1
mues3="POR"

CASE thisform.grupo1.option3.value=0
mues3=" "

CASE thisform.grupo1.option4.value=1
mues4="POR"

CASE thisform.grupo1.option4.value=0
mues4=" "
ENDCASE

**--//

IF messagebox("Desea grabar los registros",36,"Mensaje del Sistema")=6

SELEC consultas

INSERT INTO consultas(fecha, orden, pac_hc, nombres, programa, habitación, medico, especie, otros, resultado, sed_codigo, mue1, mue2, mue3, mue4) ;

VALUES(thisform. Text1. Value, thisform.text2.value, thisform.text5.value, thisform.text3.value, thisform.text6.value, thisform.text4.value, thisform.text8.value, thisform.text7.value. thisform. Edit1. Value, thisform. Edit2. Value, se, mues1, mues2, mues3, mues4)

**--//

**--
thisform.x_borrar
**--//

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas