代码之家  ›  专栏  ›  技术社区  ›  voodoo-burger

MS访问默认值

  •  0
  • voodoo-burger  · 技术社区  · 15 年前

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

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

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

    3 回复  |  直到 13 年前
        1
  •  2
  •   Tmdean    15 年前

    当您与null进行比较时,需要使用IsNull函数。对于传统的ANSI SQL逻辑,Null<&燃气轮机;Null,所以需要一个特殊的函数来测试Null。

    If [Field] = "" Or IsNull([Field])
    
        2
  •  2
  •   David-W-Fenton    15 年前

    1. 将字段设置为不允许长度为零的字符串。这样你就只能测试空值了。

    我不认为ZLS的存储有任何用处。它几乎总是一个快捷方式来容纳从返回ZLS而不是空字段为null的源追加的数据。

    你也应该阅读空值。艾伦·布朗有很多页都很好地解释了这一点:

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

        3
  •  -1
  •   DarkSprout    15 年前

    您应该尝试:

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

    因为:

    If [Field] = ""
    

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

    仍然会抛出空错误!

    推荐文章