| ||||
En si la base de Datos ACCESS no soporta Transaciones, Pero puedes manejar el Estado de la consulta con las propiedades BeginTrans, CommitTrans y RollBackTrans. Te doy un pequeño ejemplo de como controlar el estado de estas: On Error Resume Next ' Iniciamos la Transacion cnDataBase.Benintrans StrSql = "UPDATE AHORROS SET SALDO = SALDO - 50 " & _ "WHERE NUMEROCUENTA = 123456" cnDataBase.Execute (StrSql) If cnDataBase.Errors.Count > 0 then ' Se ha producido un Error cnDataBase.RollBackTrans Else StrSql = "UPDATE CuentaCorriente Set Saldo + 50 " & _ "WHERE NUMEROCUENTA = 123456" If cnDataBase.Errors.Count > 0 then ' Se ha producido un Error cnDataBase.RollBackTrans else 'No hay Errores cdDataBase.CommitTrans End if End if Otra cosa cierra la Transacion lo antes posible ya que puede generar Problemas. OK |
| |||
En lo de cerrar la transacción pronto, estoy totalmente de acuerdo, no conviene martenerla abierta mucho tiempo, es decir lo mejor es abrirla y cerrarla lo antes posible. En lo de que Acces no soporta transacciones siento discrepar, sí que las admite, desde hace tiempo, en la versión 95 ya funcionaban, lo que tienen es una restricción de transacciones anidadas, pero no recuerdo el número Un saludo |