vba - 错误时类型不匹配

标签 vba ms-access types error-handling

我正在使用 GoTo用于 Access 模块中的错误处理并得到 type mismatch Procedures.HandleError 上的错误称呼。
我测试看看是否err是一个错误:

Exit Sub
catch:
    If IsError(err) Then
        MsgBox "yes"
    Else
        MsgBox "no"
    End If
    Procedures.HandleError "ctrCreateSubject, frm_OnCreate", err, True
End Sub
MsgBox显示 no我不知道为什么。我在其他地方使用相同的语法没有问题
任何人都可以帮忙吗?

最佳答案

让我用一个例子来扩展一下我的评论。On Error GoTo语句将处理 IsError()部分,因为程序将跳转到 catch标签, 仅限 如果有错误。因此,如果我们确实跳转到错误处理程序,那么我们肯定有一个错误。
示例错误处理程序:

Sub Whatever()
    On Error GoTo catch

    'do something

Leave:
    Exit Sub

catch:
    'If we hit this point, then we definitely have an error.
    'At this point, we can query the error number if we want to take action based on the error.
    If Err.Number = xxxx Then
        Msgbox "Error " & xxxx
    End If
    Resume Leave
End Sub

然后,如果您想暂停错误处理程序然后查询是否发生错误,还有另一种方法。
On Error Resume Next

'do something

If Err.Number <> 0
    'An error occurred
End If
如果我们想稍后在我们的方法中再次执行此操作,我们可以清除它。
Err.Clear
最后,请记住 Err是一个全局对象,所以你不需要创建一个实例。 MSDN 上的更多信息:Err object

关于vba - 错误时类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62996588/

相关文章:

python - 为什么应用于实例的 Python 帮助函数在某些情况下返回有关父类的页面,而在其他情况下则不返回?

json - Postgres 9.3 中 JSON 和用户定义类型的比较

vba - 如何仅在过滤的数据/可见单元格上应用 vlookup 公式

vba - 在 Excel 中使用 VBA 通过索引 # 选择字典项

mysql - 为下表编写 SELECT 查询

java - 如何将 Hibernate String 列转换为 Enum?

vba - nextline vba 与 excel 生成电子邮件

excel - 如何加载每个用户窗体而不必单独调用 .Show?

sql - 有没有标准的方法来复制数据库表中的行?

sql - VBA/Visual Basic。简单的字符串 SQL