Ms access Access 2007 vba null
我的程序不会处理超过此语句的内容:Ms access Access 2007 vba null,ms-access,vba,null,Ms Access,Vba,Null,我的程序不会处理超过此语句的内容: Dim valid as Boolean If MyComboBox.Value Is Not Null Then valid = true 为什么不呢 如果我尝试使用停止点单步执行,程序将不会继续执行下一步,但窗体将继续运行,就好像没有运行vba代码一样。这很烦人,因为这意味着表单仍然可以像没有错误但预期行为没有发生一样使用。以这种方式使用此函数(至少在Excel中)会引发错误,因为NullAFAIK只能用于测试对象(并且value属性不是对象) 因此。。
Dim valid as Boolean
If MyComboBox.Value Is Not Null Then valid = true
为什么不呢
如果我尝试使用停止点单步执行,程序将不会继续执行下一步,但窗体将继续运行,就好像没有运行vba代码一样。这很烦人,因为这意味着表单仍然可以像没有错误但预期行为没有发生一样使用。以这种方式使用此函数(至少在Excel中)会引发错误,因为
Null
AFAIK只能用于测试对象(并且value属性不是对象)
因此。。。如果要在组合框中至少有一个选定值时设置valid=TRUE
,我相信我会使用
valid=CBool(Len(MyCombobox.Value))
希望对你有帮助。。。希望我没有误解您的问题:-)IS关键字用于测试对象的状态,您需要测试一个值。以下工作很好:
Dim Valid as Boolean
If Not IsNull(MyComboBox.Value) Then Valid = True
有关更详细的说明,请参阅以下链接:
欢迎来到StackOverflow。你期望它做什么
Valid
是一个Boolean
变量,只有当坏测试满足一个条件时,才可以设置该变量,并且在发布的代码中之后不使用Valid
。(更好的测试更像是如果MyComboBox.Text”“
,或者Valid=MyComboBox.Text”“
,然后根据Valid
是真是假来做一些事情。)Access中的MyComboBox.Text
测试只有在控件有焦点时才会起作用。检查控件是否为Null是最好的解决方案(if IsNull(Me!MyComboBox))
),假设它绑定的数据字段不允许零长度字符串(这是应该的,但不幸的是,这不再是访问表设计器中的默认值)。Null可能是变量的值,而不是对象的值。感谢链接。这是非常有益的。您的回答提供了我需要的解决方案。或者更简单地说,Valid=(notisnull(Me!MyComboBox))
。