Hola
Al parecer esto no iría en el apartado de Base de Datos pero mi problema creo que tiene ese tema.
Tengo 2 formularios
frmL que contiene la lista de Clientes y lo presento en un MSHFlexGrid.
frmG con el que agrego o modifico los datos de clientes. Tiene un botón Cerrar con la instrucción Unload Me (parece irrelevante)
En frmL tengo un botón Nuevo con el código:
frmG.Show 1 (nada del otro mundo)
o haciendo doble click en un registro del grid levanto frmG pero con los datos del grid en los controles del frmG para editar.
Hago los siguientes acciones (por probar)
- Cargado frmL doy al boton Nuevo y luego al frmG doy al boton cerrar y todo bien.
- En frmL, tomo un registro cualquiera del grid haciendo doble clic, edito en frmG y grabo y el form se descarga y se actualiza el grid. Todo bien.
AL terminar de grabar y despues del commit puse
Unload me
Unload frmL
frmL.show y asi tengo actualizado el grid. Me parece la manera mas rapida para los 300 registros previstos que va a tener ese grid.
- Vuelvo a darle a Nuevo, pongo datos en frmG y grabo y descargo y actualizo el grid. Todo bien.
Aqui viene el problema
Supongamos que ya llevo 10 registros
Le doy a nuevo
Pongo los datos y grabo, luego:
Unload me (se va frmG)
Unload frmL
frmL.show (y levanta con el registro 11)
Supongamos que en ese instante veo que escribi mal un dato del ultimo registro que grabe. Asi que le doy doble click y cuando cargo frmL pues me arrepiento y no quiero modificar nada, asi que le doy al boton cerrar de frmL el que tiene el codigo: Unload Me y SE CUELGA. Se paraliza todo el VB6. Entonces me bajo el VB6 y vuelvo a probar.
Reviso la BD y el registro esta alli, obvio sino como aparecia en el grid.
Vuelvo a editar el registro 11 y todo normal
Vuelvo a crear un nuevo registro, el 12, vuelvo a crear otro el 13 y todo bien. Solo cuando se me ocurre editar el ultimo registro que acabo de grabar y quiero descargar el form es que se cuelga ¿Porque pasa esto?
Probe con Unload frmG y tambien se cuelga.
No tengo loops ni nada, solo un simple Unload. El codigo en si es este:
dB.BeginTrans
dB.Execute sqlMPAR_ACT(txtTit, txtComent, Val(lblMPAR_ID)), adCmdText
dB.CommitTrans
MsgBox("Registro modificado con éxito")
Unload Me '<--- Aqui se cuelga
Este código va bien si edito cualquier registro, y solo se cuelga en el Unload Me cuando inserte uno previamente.
Probe tambien quitando el Begintrans y el Commit y lo mismo.
Ojala me puedan ayudar. Y sino corresponde a este apartado me disculpan y lo mueven. Gracias.