【Access小品】搞球不清--Null的概述-煮江品茶
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-教程


【Access小品】搞球不清--Null的概述

发表时间:2015/5/28 16:26:30 评论(9) 浏览(6675)  评论 | 加入收藏 | 复制
   
摘 要:【Access小品】搞球不清 -- Null的概述
正 文:
  版友三个太阳同志用了一个IF me.Text0=Null Then这样一个判断,没有能得到正确的结果。于是告诉他应该写做:IF isnull(me.Text0) Then。本来这个问题的解答就此该结束,但三个太阳同志继续问他的写法为什么是错的。这就使得问题复杂化了,因为对此问题我也没全然搞清楚。

  三个太阳同志的问题关乎Null,而Null就是一个搞球不清的东西。Null不是字符串空,也不是数字0,而是值不确定状态,对Null的通俗理解就是搞球不清。1和1可以比较,1和2也可以比较。但是两个搞球不清是无法比较的,两个不确定也是无法比较的。所以Null与Null当然也就无法构成一个逻辑表达式了。当文本框中没有填写任何东西时,看起来它是空,实际需要将其理解为不确定。所以当文本框没有填写任何东西时它是Null,但它却不能与Null这个字面量进行比较。

  实际上在不同程序语言中,关于Null还是有些差异的。在网页的脚本语言javascript中,存在Undefined类型和Null类型,VBa中的Null似乎比较接近javascript中Undefined类型。在类C语言中(C、Java等),Null表示一个空对象指针,在类B语言中则是用Nothing来表示。无论如何Null总是琢磨不定和难以理解的。

  好在我们通常不大需要深入的理解Null是什么,而主要是需要判断是不是Null了。在这个层面上,我们可以混淆一些概念,并知道不同的情况下的判断怎么去处理。一般来讲在Vba中,我们能对控件的取值是否为Null进行判断,我们可以用Isnull这个函数进行。而在控件的有效性规则属性中,我们需要写成Is not Null。在查询中我们通常也Is Null。如果你对这些都感到不可理解,你还可以用Nz函数将Null转换为一个确定的值,然后进行比较。

  除了判断外,我们是可以用Null进行某些赋值处理的。比如我们可以为控件的值赋值为Null,或者对某个数据表字段更新查询为Null。不过你如果试图给一个内存变量赋值Null,那是通常是会出错的,除非这个内存变量的类型为Variant。如果这个变量是Object,比如窗体变量、控件变量等,我们可以给它们赋值Nothing,以释放它们。

  综上所述,Null就是个搞球不清,既然是搞球不清,也就不必去刻意地搞清楚。大概齐知道怎么回事,怎么处理就行了。

Access软件网交流QQ群(群号:198465573)
 
 相关文章
access开发平台--查询为空\查找空值(没有数据)的方法\ W...  【麥田  2011/5/10】
0、""(空字串)、Null、Empty、与 Nothing 的区...  【风行  2012/6/8】
【Access基础扫盲】小数与null  【小赵  2013/8/2】
索引或主关键字不能包含一个空(null)值的可能原因  【jia  2013/12/4】
【Access DCount示例】统计表中指定字段为空的记录数示例...  【麥田  2014/5/5】
【Access更新查询】通过更新查询将表中0值更新为空值的示例,0...  【麥田  2014/5/14】
【Access小品】复姓、考核与Null  【煮江品茶  2014/5/16】
常见问答
技术分类
相关资源
文章搜索
关于作者

煮江品茶

文章分类

文章存档

友情链接