SQL插入''在Access中既不为null也不为空

时间:2014-11-26 21:17:34

标签: ms-access ms-access-2013

我有一个功能,它基本上复制记录并使用新ID插入它们。代码有效,一切都很好。

发生的SQL基本上是:

INSERT INTO myTable (ID, field, select) VALUES ('newID','stuff','')

注意最后一个值是空白,空,空,等等。有时它会有一些东西,有时却没有。

我在访问表单中检查了该值,并使用了isNull或isEmpty,两者都是false,只有以这种方式插入的记录。

那么插入什么,如果没有插入什么?它既不是空的也不是空的,那里什么都没有,所以我完全不知所措。如果我输入一些内容并将其擦除,那就没问题了。

2 个答案:

答案 0 :(得分:2)

IsEmpty()函数通常仅用于检查变量类型的变量是否尚未初始化。

数据库字段可以说是空的,这与它是空的不一样。

例如,如果您有一个名为Gender的字段,该字段不是新记录中的必填字段,则该值可能为Null,那么如果用户输入女性显然会包含值。如果他们当时删除了单词Female,那么该字段现在将为空(非空)。

在Microsoft Access中处理Null时使用的最有用的功能如下:

Nz()

这个函数有两个参数,第一个是你想要检查的变量,第二个是你希望在变量为Null时返回的值。例如,以下内容将返回一个空字符串:

Dim variantName As Variant
variantName = Null
Debug.Print Nz(variantName,"")

另外请注意,如果您尝试使用加号字符(+)加入包含Null的变量,那么这将导致Null,这可能是您遇到问题的地方。

尝试在立即窗口结果中输入以下内容也会显示在此处:

? len(null)
Null

? len(null + "abc")
Null

? len(null & "abc")
3 

答案 1 :(得分:-2)

可以是\ r或\ n或任何其他不可打印的字符, 您可能想要选择这样一行并将其转换为varbinary以查看内容