有下面的語句:
On error goto Errx
   A... '//這里一條語句,如這出錯就跳到Errx
D1.DataConnect.BeginTrans
   B... '//這里是要處理的語句,如這出錯就跳到Errx
D1.DataConnect.CommitTrans
Exit sub
Errx:   
  IF ... Then'//這里是一句如果發現D1.DataConnect正有事務要處理,就返回事務.
             '//但怎樣知道D1.DataConnect正好是BeginTrans過程呢?
     D1.DataConnect.RollbackTrans '//A...出錯當然不能執行這里啊.
  End if
  Msgbox "編輯資料失敗!" & Err.Description請問IF...怎樣寫呢?我說的夠清楚了吧.各位大哥請指點..

解决方案 »

  1.   

    On error goto Errx1
       A... 
    on erro goto Errx
    D1.DataConnect.BeginTrans
       B... 
    D1.DataConnect.CommitTrans
    Exit subErrx:   
           D1.DataConnect.RollbackTrans 
    Errx1:  
      Msgbox "編輯資料失敗!" & Err.Description
      

  2.   

    victorycyz(中海) :    這樣不行啊,我下面還有很多語句的.
        有C...
          D...
          E...時怎辦,總不可以每條加上一個錯的吧.看看還有什么辦法!^-^等待回答,不勝感謝.
      

  3.   

    dim a as boolean
    on error goto eErr
    a=turecn.begintrans
    ......
    cn.commitransa=false
    msgbox "OK"
    exit sub
    eErr:
    if a=true then 
    cn.rollbacktrans
    msgbox "Error"
    end if
      

  4.   

    讚同 exiong(悠扬) 的方法,設一Boolean變量,記錄是否開始BeginTrans處理!
      

  5.   

    ON ERROR RESUME NEXT
    不就的了反正又不想知道哪儿错了。