空与null的区别
str=""代表长度为0的字符串
str is null代表str是一个未知的值,不知是什么
------------------------------------------------------
使用isnull可以判别该String是否为Null,
使用len(str1)=0或str1=""可以判断是否为""(空值)
但是这种情况注意
str1=RecordSet.fields("id")
如果右式等于Null,程序将出错。一般用
str1=iif(isnull(RecordSet.fields("id")),"",RecordSet.fields("id"))
------------------------------------------------------
有时需要知道是否已将一个值赋予所创建的变量。在赋值之前,Variant 变量具有值 Empty。值 Empty 是异于0、零长度字符串 ("") 或 Null 值的特定值。可用 IsEmpty 函数测试 Empty 值:
If IsEmpty (Z) Then Z = 0
当 Variant 变量包含 Empty 值时,可在表达式中使用它;将其作为 0 或零长度字符串来处理,这要根据表达式来定。
只要将任何值(包括 0、零长度字符串或 Null)赋予 Variant 变量,Empty 值就会消失。而将关键字 Empty 赋予 Variant 变量,就可将 Variant 变量恢复为 Empty。
Null 值
Variant 数据类型还可包含一特定值:Null。Null通常用于数据库应用程序,表示未知数据或丢失的数据。 由于在数据库中使用 Null 方法,Null 具有某些唯一的特性:
对包含 Null 的表达式,计算结果总是 Null。于是说 Null 通过表达式“传播”;如果表达式的部分之值为 Null,那么整个表达式的值也为 Null。
将 Null 值、含 Null 的 Variant 变量或计算结果为 Null 的表达式作为参数传递给大多数函数,将会使函数返回 Null。
Null 值经由返回 Variant 数据类型的内在函数传播。
也可用 Null 关键字指定 Null 值。
Z = Null
也可用 IsNull 函数测试 Variant 变量是否包含 Null 值。
If IsNull (X) And IsNull (Y) Then
Z = Null
Else
Z = 0
End If
如果将 Null 值赋予 Variant 以外的任何其它类型变量,则将出现可以捕获的错误。而将 Null 值赋予 Variant 则不会发生错误,Null 将通过包含 Variant 变量的表达式传播(尽管 Null 并不通过某些函数来传播)。可以从任何具有 Variant 返回值的函数过程返回 Null。
除非明确将 Null 赋予变量,否则变量不会设置成 Null 值,所以,如果不在应用程序中使用 Null,就不必书写测试 Null 和处理 Null 的程序。