on error goto lblerr adocn.begintrans ... adocn.execute "insert..." adocn.execute "insert..." adocn.execute "insert..." adocn.comminttrans exit sub lblerr: adocn.rollbacktrans
借别人的代码,给你看看,有没有帮助 再讲三种结构: 第一: private sub TSave() cn.begintrans on error goto InsertErr cn.execute(SQL语句) cn.CommitTrans exit sub InsertErr: cn.RollbackTrans msgbox "ERROR",vbinformation,"AAA" end sub 第二: private sub TSave() dim rsMain as new adodb.recordset‘主表 dim rsDetail as new adodb.recordset’明细表 连接自己写
cn.begintrans on error goto InsertErr with rsmain .addnew .fields(0).value=text1.text ................. .update end with for i=0 to txt.count-1 with rsdetail .addnew .fields(i).value=txt(i).text ........... .update end with next cn.CommitTrans exit sub InsertErr: cn.RollbackTrans msgbox "ERROR",vbinformation,"AAA" end sub 第三:(大型数据库SQL Server) private sub TSave() dim sqlstr as string sqlstr="Begin trans insert into table(field1,....fieldn) values(value1,value2.....valuen) comm trans" cn.execute(sqlstr) end sub
On Error GoTo ErrHandle CN.BeginTrans CN.Execute "insert into table1 ........" CN.Execute "insert into table2 ........" CN.CommitTrans Exit Sub ErrHandle: CN.RollbackTrans
adocn.begintrans
...
adocn.execute "insert..."
adocn.execute "insert..."
adocn.execute "insert..."
adocn.comminttrans
exit sub
lblerr:
adocn.rollbacktrans
再讲三种结构:
第一:
private sub TSave()
cn.begintrans
on error goto InsertErr
cn.execute(SQL语句)
cn.CommitTrans
exit sub
InsertErr:
cn.RollbackTrans
msgbox "ERROR",vbinformation,"AAA"
end sub
第二:
private sub TSave()
dim rsMain as new adodb.recordset‘主表
dim rsDetail as new adodb.recordset’明细表
连接自己写
on error goto InsertErr
with rsmain
.addnew
.fields(0).value=text1.text
.................
.update
end with
for i=0 to txt.count-1
with rsdetail
.addnew
.fields(i).value=txt(i).text
...........
.update
end with
next
cn.CommitTrans
exit sub
InsertErr:
cn.RollbackTrans
msgbox "ERROR",vbinformation,"AAA"
end sub
第三:(大型数据库SQL Server)
private sub TSave()
dim sqlstr as string
sqlstr="Begin trans insert into table(field1,....fieldn) values(value1,value2.....valuen) comm trans"
cn.execute(sqlstr)
end sub
CN.BeginTrans CN.Execute "insert into table1 ........"
CN.Execute "insert into table2 ........" CN.CommitTrans
Exit Sub
ErrHandle:
CN.RollbackTrans