空与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   的程序。   
   
原文地址:https://www.cnblogs.com/no7dw/p/1590444.html