把代码改成这样:
public sub main()
dim j 
On Error goto ErrCode
ErrNext:
for ii=j to 100
    '''''''
    '''''''其他数据库操作
    aa=(一个错误)'如果有第二次错,就会在这里报VB系统错误提示,陷阱失效
    '''''''
    Update
next iiexit sub
'''''''''''''''''
ErrCode:
  'Err.Clear这句没用
  CancelUpdate
  j=ii
  goto ErrNext
end sub
如果能行的话就给分吧:)

解决方案 »

  1.   

    这样:
    Sub main()
        On Error GoTo ErrorCode
    for ii=1 to 100
        '''''''
        '''''''其他数据库操作
        aa=(一个错误)'如果有第二次错,就会在这里报VB系统错误提示,陷阱失效
        '''''''
        Update
    ErrNext:
    next iiExit Sub
    ErrCode:
      
      CancelUpdate
      Resume ErrNext
    end sub
      

  2.   

    处理完错误后,一定要用 RESUME xxx,用来退出错误处理.否则错误处理不可重载!
    你可以试着设置一个变量,用以判断是否运行过错误处理,以跳过下面的代码的执行.
      

  3.   

    我就是不想用Resume ErrNext,因为前面已经出错,后边就不用再处理,但是如果用了Resume ErrNext,则后边的代码还要继续运行,这不符合我的意图。谢谢大家的参与。真的没有好方法吗?
      

  4.   

    试试这样呢
    public sub main()
    for ii=1 to 100
    On Error goto ErrCode
        '''''''
        '''''''其他数据库操作
        aa=(一个错误)'如果有第二次错,就会在这里报VB系统错误提示,陷阱失效
        '''''''
        Update
    ErrNext:
    next ii
    exit sub
    '''''''''''''''''
    ErrCode:
      'Err.Clear这句没用
      CancelUpdate
    on error goto 0
      goto ErrNext
    end sub还有了,楼上的说的是让你  Resume ErrNext,又不是 Resume Next
    也可以试试!////////////////////////////////////////////////////////////////
    不过在这里想说一下,解决问题不一定是这样的!
    想想最终的问题是:
    >>我是为了有错误数据时,自动CancelUpdate,并忽略当前数据(不插入数据库),并且还要继续>>For里的循环,如果使用resume的话,他还会自动执行出错时的下一句代码。
    换一种实现方法!少用goto 
      

  5.   

    Sub main()
        On Error Resume Next
        
    For ii = 1 To 100
        '''''''
        '''''''其他数据库操作
        aa = (一个错误) '如果有第二次错,就会在这里报VB系统错误提示,陷阱失效
        If Err.Number = 999 Then Exit Sub   '999填写对应的错误号
        '''''''
        Update
    Next ii
    Exit Sub
      

  6.   

    Sorry!Sorry
    hydnoahark(诺亚方舟)是对的,我看花眼了。
    昨天问了个朋友,他讲的就是hydnoahark(诺亚方舟)的方法。
    现在仔细一看,原来hydnoahark(诺亚方舟)就是这样说的。sandder(包含中)提醒的也很对。
    都会加分的。
    这个问题我问了几次,还想加分的就查一下我发的所有问题,hydnoahark,sandder
    谢谢!