例子没有打完整,重新打一下==============
sub test()
on error goto dealerr
conn.BeginTrans '开始事务
conn.execute "*****" '正确的sql
conn.execute "*****" '会发生错误的sql
conn.committrans ‘提交事务
exit sub
dealerr:
conn.rollbacktrans ‘退回事务
resume next
end sub
'=================
sub test()
on error goto dealerr
conn.BeginTrans '开始事务
conn.execute "*****" '正确的sql
conn.execute "*****" '会发生错误的sql
conn.committrans ‘提交事务
exit sub
dealerr:
conn.rollbacktrans ‘退回事务
resume next
end sub
'=================
resume next
问题就出在这个resume next上,把这个去掉就行了你想,如果某句出错,事务已经rollback了,你又resume next接着往下运行,如果后面的运行成功了,那还会碰到commitrans,这时候就发生没有活动事务的错误了,假如执行失败,又会rollback,这还是没有活动事务的错误反正把resume next去掉就对了