过滤数据表中的空值,空值

时间:2011-05-06 06:13:23

标签: ms-access vba

在MS Access数据表中,是否可以在表中的特定字段中过滤那些值为null或为空的记录?

3 个答案:

答案 0 :(得分:1)

WHERE myCol IS NULL OR LEN(myCol) = 0

答案 1 :(得分:1)

在您的SQL语句中:

WHERE Nz(CompanyName, '') = '' 

在表单的过滤器属性中:

Nz(CompanyName, '') = ''

Mitch Wheat发布的解决方案也将起作用。我不确定哪一个会提供最佳性能。如果您正在使用Mitch的解决方案,并且您还在Where子句中使用其他条件,请不要忘记插入如下括号:

WHERE (myCol IS NULL OR LEN(myCol) = 0) AND myCol2 = True

答案 2 :(得分:1)

使用条件中的函数意味着您无法使用索引。 @Mitch Wheat的解决方案将使用Is Null测试的索引,但不会使用Len()测试。

一个可攻击的WHERE子句就是这样:

  WHERE myCol Is Null OR myCol = ""

但是我建议关闭“允许零长度字符串”,然后你只需要进行Null测试,在索引字段上测试非常快。

对于它的价值,我发现MS更改新文本字段的默认值以启用允许ZLS非常烦人。这意味着当我使用表设计器创建新字段时,我必须更改它们中的每一个。