VBA访问查询,如果返回为空,如何跳过?替换

VBA访问查询,如果返回为空,如何跳过?替换,vba,ms-access,Vba,Ms Access,我正在做一个很好的查询,当它找到我要找的东西时。98%的病例。 有时它不匹配,我想我可以像ifnotnull/Nothing那样做,然后替换 返回值(字符串) 但这是行不通的,代码如下 ' The query -> Set alarms = alarmDb.OpenRecordset("select * from Data2020 where AlarmCode = " & enteredalarm, dbOpenDynaset) If alarm

我正在做一个很好的查询,当它找到我要找的东西时。98%的病例。 有时它不匹配,我想我可以像ifnotnull/Nothing那样做,然后替换 返回值(字符串)

但这是行不通的,代码如下

' The query -> 
Set alarms = alarmDb.OpenRecordset("select * from Data2020 where AlarmCode = " & enteredalarm, dbOpenDynaset)


    If alarms!AlarmText = null Then
        returnAlarm = alarms!AlarmText
    Else
        returnAlarm = "not found"
    End If
相反,我得到的错误是“未找到运行时错误3021”记录。 这是有道理的


我不想使用“出错后继续下一步”等,所以我仍然知道发生了什么。

我这样解决了它

If IsNull(alarms!AlarmText) Then
    returnAlarm = "na"
Else
    returnAlarm = alarms!AlarmText
End If

您需要检查记录集的
EOF
属性,例如
If alarms.EOF Then returnAlarm=“na”Else…