留言中的内容: On Error GoTo fix_err Dim strSQL As String strSQL = "delete from 库存原始临时表" adoCn.Execute strSQL fix_err: adoCn.RollbackTrans加一句正常退出: On Error GoTo fix_err Dim strSQL As String strSQL = "delete from 库存原始临时表" adoCn.Execute strSQL exit sub '一定要加这句。 fix_err: adoCn.RollbackTrans
我的代码是这样的: On Error GoTo fix_err Dim strSQL As String
strSQL = "delete from 库存原始临时表" adoCn.Execute strSQL Dim i As Integer i = 1 Do Until rs.EOF strSQL = "insert into 库存原始临时表 values(" & rs.Fields(0).value & "," & rs.Fields(1).value & "," & rs.Fields(2).value & ")" adoCn.Execute strSQL i = i + 1 rs.MoveNext Loop
rs.Close Set rs = Nothing MsgBox "导入成功!!!" Exit Sub
你根本就没有用显式事务呀?事务回滚是必须与事务开始配对出现的,回滚不能单独出现。给你改一下:On Error GoTo fix_err Dim strSQL As String Dim rs As New ADODB.Recordset Dim sconn As String dim intflag as integer
On Error GoTo fix_err
Dim strSQL As String
strSQL = "delete from 库存原始临时表"
adoCn.Execute strSQL
fix_err:
adoCn.RollbackTrans加一句正常退出:
On Error GoTo fix_err
Dim strSQL As String
strSQL = "delete from 库存原始临时表"
adoCn.Execute strSQL
exit sub '一定要加这句。
fix_err:
adoCn.RollbackTrans
On Error GoTo fix_err
Dim strSQL As String
Dim rs As New ADODB.Recordset
Dim sconn As String
CommonDialog1.Filter = "Excel (*.xls)|*.xls"
CommonDialog1.ShowOpen
rs.CursorLocation = adUseClient
rs.CursorType = adOpenKeyset
rs.LockType = adLockBatchOptimistic sconn = "DRIVER=Microsoft Excel Driver (*.xls);" & "DBQ=" & CommonDialog1.FileName
rs.Open "SELECT * FROM [sheet1$]", sconn
strSQL = "delete from 库存原始临时表"
adoCn.Execute strSQL
Dim i As Integer
i = 1
Do Until rs.EOF
strSQL = "insert into 库存原始临时表 values(" & rs.Fields(0).value & "," & rs.Fields(1).value & "," & rs.Fields(2).value & ")"
adoCn.Execute strSQL
i = i + 1
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
MsgBox "导入成功!!!"
Exit Sub
fix_err:
MsgBox "请检查第 " & i & " 行数据是否完整!!!", 32, Me.caption
adoCn.RollbackTrans
Dim strSQL As String
Dim rs As New ADODB.Recordset
Dim sconn As String
dim intflag as integer
CommonDialog1.Filter = "Excel (*.xls)|*.xls"
CommonDialog1.ShowOpen
rs.CursorLocation = adUseClient
rs.CursorType = adOpenKeyset
rs.LockType = adLockBatchOptimistic sconn = "DRIVER=Microsoft Excel Driver (*.xls);" & "DBQ=" & CommonDialog1.FileName
rs.Open "SELECT * FROM [sheet1$]", sconn
intflag=1
adoCn.begintrans
strSQL = "delete from 库存原始临时表"
adoCn.Execute strSQL
Dim i As Integer
i = 1
Do Until rs.EOF
strSQL = "insert into 库存原始临时表 values(" & rs.Fields(0).value & "," & rs.Fields(1).value & "," & rs.Fields(2).value & ")"
adoCn.Execute strSQL
i = i + 1
rs.MoveNext
Loop
adocn.committrans
intflag=0
rs.Close
Set rs = Nothing
MsgBox "导入成功!!!"
Exit Sub
fix_err:
MsgBox "请检查第 " & i & " 行数据是否完整!!!", 32, Me.caption
if intflag=1 then adoCn.RollbackTrans