Set Rs = New ADODB.Recordset
  strConnect = "select * from where .....省略"
  Rs.Open strConnect, Conn, adOpenStatic, adLockPessimistic, adCmdText
    If not(Rs.EOF And Rs.BOF) Then
        Conn.begintrace
        For i = 1 To Rs.RecordCount
           Rs.Fields("trans_flag") = 1
           Rs.MoveNext
        Next
        Rs.MoveFirst
        Rs.Update
        Conn.committrace
        Rs.Close
        Set Rs = Nothing
   end if

解决方案 »

  1.   

    to: zhenyukeji(何处是我家) 
    加入后,提示大意为“不能另外开始事务”,:(
      

  2.   

    Set Rs = New ADODB.Recordset
      strConnect = "select * from where .....省略"
      Rs.CursorLocation = adUseClient
      Rs.CursorType = adOpenDynamic
      Rs.LockType = adLockOptimistic
      Rs.Open strConnect, Conn
        If not(Rs.EOF And Rs.BOF) Then
            For i = 1 To Rs.RecordCount
               Rs.Fields("trans_flag") = 1
               Rs.MoveNext
            Next
            Rs.MoveFirst
            Rs.Update
            Rs.Close
            Set Rs = Nothing
       end if
      

  3.   

    update 完了以后,还是会产生错误,导致conn.err.count=1,然后执行Conn.committrace后数据库还是没有得到更新。
      

  4.   

    Set Rs = New ADODB.Recordset
      strConnect = "select * from where .....省略"
      Rs.CursorLocation = adUseClient
      Rs.CursorType = adOpenDynamic
      Rs.LockType = adLockOptimistic
      Rs.Open strConnect, Conn
      Conn.BeginTrans
        If not(Rs.EOF And Rs.BOF) Then
            For i = 1 To Rs.RecordCount
               Rs.Fields("trans_flag") = 1
               Rs.Update
               Rs.MoveNext
            Next
            Rs.Close
            Set Rs = Nothing
       end if
       Conn.CommitTrans
      

  5.   

    Set Rs = New ADODB.Recordset
      strConnect = "select * from where .....省略"
      Rs.CursorLocation = adUseClient
      Rs.CursorType = adOpenDynamic
      Rs.LockType = adLockOptimistic
      Rs.Open strConnect, Conn
         If not(Rs.EOF And Rs.BOF) Then
            Conn.BeginTrans
            For i = 1 To Rs.RecordCount
               Rs.Fields("trans_flag") = 1
               Rs.Update
               Rs.MoveNext
            Next
            Conn.CommitTrans
            Rs.Close
            Set Rs = Nothing
       end if
       
      

  6.   

    我也在学VB+ORACLE,不如可否一起切搓。.