我可以在 CVErr() 中使用什么错误号来指示 Access VBA 函数不会返回任何值?我正在拉空白。 CVErr(5) 可以工作,但我希望有一些不那么通用的东西。 744(“未找到搜索文本”)已接近(-ish),但仍然没有雪茄。
我正在创建一个特殊的查找函数以在 Access 报告中使用。如果该函数不返回任何值,我希望它返回一个 ERROR# 值。 Chip Pearson's discussion of this很完美,但它是针对 Excel 的,必须针对 Access 稍作修改。
我搜索了Error List at FMS包含各种关键字,例如“零”、“未找到”、“太少”等。列表中存在数千个错误,因此,如果您能在无需实际阅读整个列表的情况下减少错误,我们将不胜感激。
示例:
Function MyLookup(param1) as Variant
'..............
'...do stuff...
'..............
If SomethingBad = True Then
MyLookup = VBA.CVErr(N) 'What here for N?
Exit Function
Endif
End Function
最佳答案
如果您要引发(或在本例中为传递)的错误不属于任何预定义错误消息的类别,则您应该定义自己的错误号并引发该错误。常量 vbObjectError
就是为此目的而存在的 - 将其添加到您的内部编号中并传递:
Public Const SOMETHING_BAD_ERROR As Long = vbObjectError + 666
Function MyLookup(param1) As Variant
'..............
'...do stuff...
'..............
If SomethingBad = True Then
MyLookup = VBA.CVErr(SOMETHING_BAD_ERROR)
Exit Function
End If
End Function
传递或提出一个错误号,但不能准确传达真正发生的错误,这对调用者来说是一种伤害。
关于excel - 我可以与 CVErr() 一起使用什么错误号来指示 Access VBA 函数不会返回任何值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51746583/