VBA不为空
在Access中使用某些VBA代码时,当满足一组非常特定的条件时,会弹出一个输入框,要求输入一个整数。到目前为止还不错VBA不为空,vba,ms-access,conditional,Vba,Ms Access,Conditional,在Access中使用某些VBA代码时,当满足一组非常特定的条件时,会弹出一个输入框,要求输入一个整数。到目前为止还不错 Private Sub Command10_Click() If Not IsNull(mrf) Then If min <> max Then If qty <= min Then mrf = GetParamValue End If E
Private Sub Command10_Click()
If Not IsNull(mrf) Then
If min <> max Then
If qty <= min Then
mrf = GetParamValue
End If
End If
End If
End Sub
Private子命令10_Click()
如果不为空(mrf),则
如果最小最大,则
如果qtyNo,则Not IsNull工作正常
请记住,IsNull是一个函数,如果传递给它的参数为null,则返回TRUE,否则返回false
您的“If Not IsNull(mrf)Then”语句翻译成英语为“If mrf Not null Then”
这意味着当mrf有一个值时,您正在处理if语句中的代码。如果希望在mrf为null时触发内部代码,则需要从语句中删除NOT 我的猜测是mrf不是空的,即使它是空的或其他什么。它也可能是空的,这与VBA区域中的null不同(我认为)。尝试在调试器中运行代码并查看mrf的值。根据mrf是什么,你可以做一个不同的测试(比如check len(mrf)或者not isNothing(mrf),或者如果它是一个整数,并且它的init为零,那么mrf为0…你就明白了。希望这能帮上忙!如果mrf
是Variant,那么它最初是空的,而不是Null
。因此你必须使用IsEmpty()
函数。您可能对VB6/VBA null/nothing/empty上的这篇文章感兴趣:
Ahh看起来我的问题来自其他地方。另一个选项是将mrf初始化为null。我注意到他没有声明任何变量(最小、最大、mrf),这通常是一个坏主意。打开“option Explicit”(选项显式)可以避免很多类似这样的逻辑错误。