No sé como realizar una transacción anidada.
El siguiente codigo me permite realizar las dos transacciones pero no me permite volver atras las dos transacciones. Uso Visual Basic y Access 97 y DAO.
Dim resVerifico As Recordset, strSQL As String
MousePointer = 11
DATAX = "UPDATE ESCUELAS SET IDGestion=" & cboGestion.ItemData(cboGestion.ListIndex) & ",IDCodPresu='" & txtEscuela.Text & "',IDRegion=" & cboRegion.ItemData(cboRegion.ListIndex) & ",IDDepartamento=" & cboDepartamento.ItemData(cboDepartamento.ListIndex ) & ",IDLote=" & cboLote.ItemData(cboLote.ListIndex) & ",IDFuncion=" & cboFuncion.ItemData(cboFuncion.ListIndex) & " " & _
"WHERE IDEscuelas=" & txtIDEscuela.Text & ""
On Error GoTo controlador
wrkPredeterminado.BeginTrans
CTRLNUM = 0
dbBase.Execute DATAX, dbFailOnError
wrkPredeterminado.CommitTrans
On Error GoTo 0
MousePointer = 0
'Actualizar la escuela en la tabla de devoluciones
MousePointer = 11
DATAX = "UPDATE DEVOLUCIONES SET IDFuncion=" & cboFuncion.ItemData(cboFuncion.ListIndex) & " " & _
"WHERE IDCodPresu='" & txtEscuela.Text & "' and IDRegion=" & cboRegion.ItemData(cboRegion.ListIndex) & " and IDDepartamento=" & cboDepartamento.ItemData(cboDepartamento.ListIndex ) & " and IDLote=" & cboLote.ItemData(cboLote.ListIndex) & " "
On Error GoTo controlador
'wrkPredeterminado.BeginTrans
CTRLNUM = 0
dbBase.Execute DATAX, dbFailOnError
wrkPredeterminado.CommitTrans
On Error GoTo 0
MousePointer = 0
exit sub
controlador:
If CTRLNUM = 1000 Then
Rollback
MousePointer = 0
On Error GoTo 0
DATAX = "No se pudieron registrar los cambios."
MsgBox DATAX, vbCritical, "Sistema Bloqueado."
Else
CTRLNUM = CTRLNUM + 1
Resume
End If