MS Access默认值

时间:2010-07-06 20:11:52

标签: ms-access asp-classic

我的一个MS Access表中有一个文本列,当插入新记录时,该列为空。我遇到的问题是我似乎无法检查此字段是否为空,其中EITHER等于Null或等于“”。例如,这些都不会将字段“读取”为空:

If [Field] = "" Or [Field] = Null Then

我一直使用Access 2007来开发这个数据库,最近我用Access 2003打开它,这是我认为这个问题开始的时候。这可能是原因吗?如果是这样,只需打开并再次保存它,Access 2007就可以解决它吗?

3 个答案:

答案 0 :(得分:2)

与null比较时,需要使用IsNull函数。使用传统的ANSI SQL逻辑,Null<>空,所以你需要一个特殊的函数来测试null。

If [Field] = "" Or IsNull([Field])

答案 1 :(得分:2)

首先,我建议你做两件事之一:

  1. 将字段设置为禁止零长度字符串。那样你就必须只测试Is Null。

  2. 如果您认为必须允许存储ZLS,请将默认值设置为ZLS。尽管如此,该领域仍有可能结束Null,所以这可能有用也可能没有帮助。

  3. 我认为ZLS的存储没有任何实用程序。它几乎总是一种快捷方式,可以容纳从返回ZLS的源而不是空字段的Null附加数据。

    你还应该阅读Nulls。 Allen Browne有很多页面可以很好地解释这一点:

    在VBA代码中使用Nulls的方面:

    这些文章是面向访问的,但对于那些使用任何数据库的人来说都很有价值,特别是相对新手因为写作的会话风格。

答案 2 :(得分:-1)

你应该尝试:

If Nz([Field], "") = "" Then 

由于:

If [Field] = ""

在:

If [Field] = "" Or IsNull([Field])

仍会抛出Null错误!