我在commondialog中为了能对按“取消”键时做出处理。所以用了 on error goto .但是当第一次做
处理时我又回到之前的代码打开对话框,这时如果再次按”取消“,on error goto就再也不起作用了,
也就不能对第二次出错做处理。请问要怎么样解决才好?

解决方案 »

  1.   

    例如有如下代码:       怎么样才能让第二次按取消时得到处理啊?
    On Error GoTo errhndr
    Do While mode = 0 With Dialog1
    .DialogTitle = "openDB".CancelError = True '按取消时发送一个错误信息
    .Filter = "text files (*.txt) | RTF files(*.txt) |all files |*.*"
    .FilterIndex = 2
    .Flags = 0
    .ShowOpen  '这里决定使用的对话框类型name = .FileName
    mode = 1
    End WithExit Suberrhndr:
    If Err.Description = "Cancel was selected." ThenMsgBox ("input filename or choose a DBfile exit")
    mode = 0Else
    mode=1
    loop
      

  2.   

    Dim mode As Boolean
    On Error GoTo errhndr
    mode = False
    Do With Dialog1
    .DialogTitle = "openDB".CancelError = True '按取消时发送一个错误信息
    .Filter = "text files (*.txt) | RTF files(*.txt) |all files |*.*"
    .FilterIndex = 2
    .Flags = 0
    .ShowOpen  '这里决定使用的对话框类型'Name = .FileNameEnd With
    mode = False
    Loop While mode
    Exit Suberrhndr:
    If Err.Number = 32755 ThenMsgBox ("input filename or choose a DBfile exit")
    mode = TrueElse
    mode = False
    End If
    Resume
    End Sub
      

  3.   

    谢谢!!主要是我没加一名resume对吗?呵呵,那resume是做什么工作啊?是把err的哪些状态属性恢复吗??在对话框中是否有个判断输入文件是否已经存在的函数,是怎么用的!
    还有个问题我在用DAO做数据库的时候怎么样把一个数据库的所有表都列出来啊~!?
      

  4.   

    //谢谢!!主要是我没加一名resume对吗?呵呵,那resume是做什么工作啊?是把err的哪些状态属性恢复吗??
    resume是回到出错的断点继续执行//在对话框中是否有个判断输入文件是否已经存在的函数,是怎么用的
    我不知道有这个函数//还有个问题我在用DAO做数据库的时候怎么样把一个数据库的所有表都列出来啊~!?
    DAO我不用的,所以也不知道怎么回答
      

  5.   

    突然想到,好像是fso.FileExists(filename),不过不知道fso是怎么用的.不知道是不是form 的属性!
      

  6.   

    呵呵,助人乃快乐之本.我也在CSDN获益不少.
    CSDN里面有很多高手呢,要在里面多混混.