错误处理程序未捕获错误

时间:2017-06-07 05:57:44

标签: vba access-vba

我遇到的这个问题是我的错误处理程序没有捕获错误,如果它发生超过2次。这就是我正在使用的。

Private Sub DBBackUp()
On Error GoTo ErrHandler:
If FSO.FolderExists(DBBackupFolderDir) = True And FSO.FileExists(DBDir) = True Then

AskAgianLoop:

    Application.CompactRepair DBDir, CARDBBackupFileDir, True
End if


ErrHandler:
If Err.Number = 58 Or Err.Number = 31523 Then
    GoTo AskAgianLoop
Else
  errMsg = "Error number: " & Str(Err.Number) & vbNewLine & _
           "Source: " & Err.Source & vbNewLine & _
           "Description: " & Err.Description
Debug.Print errMsg
Err.Clear
End If
Exit Sub
End Sub

以上将通过安全警告提示用户每次运行2次。如果用户单击其中一个而不是打开取消,则会抛出一个值为31523的错误代码。然后将其移至ErrHandler。然后,将使用相同的安全提示再次询问用户。如果用户按下取消超过2次,则显示值为31523的错误消息,并且不会被错误处理程序捕获。

1 个答案:

答案 0 :(得分:0)

GoTo AskAgianLoop更改为Resume AskAgianLoop:解决了问题。