一直很困惑如何把这两条命令插入合适的地方,我是初学者,我感觉on error resume next用起来更加方便一点,也解决了不少程序的错误强制中断的错误,而对于on error goto我的理解比较模糊,通常该命令下要加个对事务进行管理的过程(begintrans,CommitTrans,RollbackTrans),有人能指点下,on error goto用在什么地方比on error resume next更合适一点吗?还有关于事务管理管理过程(begintrans,CommitTrans,RollbackTrans)有其存在的必要性吗?谢谢

解决方案 »

  1.   

    on error goto 不一定要配合数据库事务处理,做其他方面的错误处理也是可以的。例如:
    on error goto errhandler
    ......
    exit suberrhandler:
      if err.number = 2095 then 
         resume next
      else
         msgbox "实时错误" & err.number & ":" & vbcrlf & err.description
      end If
      

  2.   

    麻烦解释一下 "Resume Next "     
    Function Divide (numer, denom) as Variant
       Dim Msg as String
       Const mnErrDivByZero = 11, mnErrOverFlow = 6
       Const mnErrBadCall = 5
       On Error GoTo MathHandler
          Divide    = numer / denom
          Exit Function
    MathHandler:
       If Err.Number = MnErrDivByZero Or _
       Err.Number = ErrOverFlow _
       Or Err = ErrBadCall Then
          Divide = Null   ' 如果错误是被零除、溢出或非法过程调用,
                         ' 则返回 NULL。
       Else
          '显示意想不到的错误信息。
          Msg = "Unanticipated error " & Err.Number
          Msg = Msg & ": " & Err.Description
          MsgBox Msg, vbExclamation
       End If         ' 不管什么情况, Resume Next
       Resume Next      ' 总在 Exit 函数语句处继续执行。
    End Function
      

  3.   

    记得曾看过[我爱吃猪肉,但为什么不胖]发的一篇贴子,专讲on error ……,说的不错,你搜索一下吧。