VBA访问查询,如果返回为空,如何跳过?替换
我正在做一个很好的查询,当它找到我要找的东西时。98%的病例。 有时它不匹配,我想我可以像ifnotnull/Nothing那样做,然后替换 返回值(字符串) 但这是行不通的,代码如下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
' 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…
。