我可以在CVErr()中使用哪个错误号来指示Access VBA函数不会返回任何值?我拉空白。 CVErr(5)可以工作,但是我希望有一些不太通用的东西。 744(“找不到搜索文字”)接近(-ish),但仍然没有雪茄。
我正在创建一个特殊的查询功能以在访问报告中使用。如果该函数不返回任何值,我希望它返回一个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
答案 0 :(得分:4)
如果要引发的错误(或在这种情况下为通过)不属于任何预定义的错误消息的类别,则应定义您自己的错误编号,并提出该错误编号。为此存在常数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
传递或提高错误号不能准确传达出真正出了问题的地方,这对呼叫者是有害的。