我的一个MS Access表中有一个文本列,当插入新记录时,该列为空。我遇到的问题是我似乎无法检查此字段是否为空,其中EITHER等于Null或等于“”。例如,这些都不会将字段“读取”为空:
If [Field] = "" Or [Field] = Null Then
我一直使用Access 2007来开发这个数据库,最近我用Access 2003打开它,这是我认为这个问题开始的时候。这可能是原因吗?如果是这样,只需打开并再次保存它,Access 2007就可以解决它吗?
答案 0 :(得分:2)
与null比较时,需要使用IsNull函数。使用传统的ANSI SQL逻辑,Null<>空,所以你需要一个特殊的函数来测试null。
If [Field] = "" Or IsNull([Field])
答案 1 :(得分:2)
首先,我建议你做两件事之一:
将字段设置为禁止零长度字符串。那样你就必须只测试Is Null。
如果您认为必须允许存储ZLS,请将默认值设置为ZLS。尽管如此,该领域仍有可能结束Null,所以这可能有用也可能没有帮助。
我认为ZLS的存储没有任何实用程序。它几乎总是一种快捷方式,可以容纳从返回ZLS的源而不是空字段的Null附加数据。
你还应该阅读Nulls。 Allen Browne有很多页面可以很好地解释这一点:
在VBA代码中使用Nulls的方面:
这些文章是面向访问的,但对于那些使用任何数据库的人来说都很有价值,特别是相对新手因为写作的会话风格。
答案 2 :(得分:-1)
你应该尝试:
If Nz([Field], "") = "" Then
由于:
If [Field] = ""
在:
If [Field] = "" Or IsNull([Field])
仍会抛出Null错误!