ma se non hai ancora committato che prob c'è

dichiari una var booleana

codice:
private sub....
on error goto Err
dim bTrans as boolean
   cn.begintrans: bTrans = true
   do
   ...
   loop
   cn.committrans: btrans=false
exit sub
Err:
   if btrans then cn.rollback
end sub