RE:Metodos Begintrans, Commit y Rollback
mira estos metodos son los que manejan las transacciones dentro de una base de datos, una transaccion es cualquier operacion con objetivo de alterar los registros de una tabla.
entonces comprendiendo puedes generar varios insert, update, delete sin que la base de datos se modifique hasta que tu se lo indiques.
intenta crear una funcion para cada tarea, es decir una tarea que grabe , otra que elimine, etc. y que te retornen valores boolean.
ej:
TABLA:CABEZERA
TABLA:DETALLE
DIM CNSQL As ADODB.Connection
DIM EXITO AS BOOLEAN
CNSQL.BEGINTRANS ' aqui estas abriendo una transaccion
IF GRABAR_ENCABEZADO = TRUE THEN
IF GRABA_DETALLE = TRUE THEN
EXITO = TRUE
ELSE
EXITO = FALSE
END IF
ELSE
CNSQL.ROLLBACKTRANS ' cancelando la transaccion
END IF
IF EXITO = TRUE THEN
CNSQL.COMITTRANS ' aqui estas terminando la transaccion
END IF
entonces lo que podemos deducir de esto es que tu comienzas una transaccion( ok esta toma los datos y todo eso), pero ella no modificara los datos hasta que tu ejecutes un committran, es como que con el begintrans dejaras los datos frente a la tabla y con el committrans los pegas en las filas, y con el rollbacktrans los sacas del frente de la tabla.
ojala te sirva esto