一个区别空值和空字符串(“”)的小例子-李子
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


一个区别空值和空字符串(“”)的小例子

发表时间:2017/2/24 16:37:14 评论(2) 浏览(8140)  评论 | 加入收藏 | 复制
   
摘 要: 当组合框在没有默认值的情况下加载时,系统自动先赋值了空字符串:"",但在组合框中选择某值后再删除时,则系统赋予了空值。
正 文:

笔者创建了一个组合框,绑定一个表数据源。在代码中对组合框的选项值进行判断时,以下两段代码会有不同的结果:

一、使用 ISNULL 函数判断

If Not IsNull(Me.Combo7.Value) Then
    Select Case Me.Combo7.Column(3)
      Case Is = "文本"   '选择了文本型字段
       ...   
      Case Is = "日期/时间"   '选择了日期型字段
       ...   
    End Select
 Else
    MsgBox "无效选择,请重新选择!", vbOKOnly
    Me.List9.SetFocus
    Me.Combo7.SetFocus          '重新选择
 End If

二、使用 <>“” 判断

 If Me.Combo7.Value <> "" Then
    Select Case Me.Combo7.Column(3)
      Case Is = "文本"   '选择了文本型字段
         ... 
      Case Is = "日期/时间"   '选择了日期型字段
         ... 
    End Select
 Else
    MsgBox "无效选择,请重新选择!", vbOKOnly
    Me.List9.SetFocus
    Me.Combo7.SetFocus          '重新选择
 End If

现象:

   1、当组合框没有赋予默认值打开时,前者的ELSE直接跳过,而后者的ELSE则得到执行;

   2、当组合框选了某选项值但又立刻删除了该值时,两者的ELSE都得到了执行。

原因:

     “” 是空字符串,允许空字符串输入,是指允许零长度字符串输入:””,它包括零长度字符串与空值,不允许空字符串,是指表不接受零长度字符串输入,如果未输入有效文本,则自动插入空值.空值就是指未知的数据,零长度字符串是指没有此值

   当组合框在没有默认值的情况下加载时,系统自动先赋值了空字符串:"",但在组合框中选择某之后再删除时,则系统赋予了空值。

结论: 对""的判断包含对空值的判断。在以上情况下,最好首选使用=""或<>""进行判断。


Access软件网交流QQ群(群号:198465573)
 
 相关文章
判断空值或空字符串五法比较  【江羽  2009/9/10】
【Access入门】直观解释nz函数,nz函数入门示例一则,将空值...  【麥田  2012/9/7】
零长度字符串与空值的区别  【殷小宝  2013/4/20】
access中null和空字符串的区别  【小赵  2013/5/6】
“非空值”与“空值”的查询  【蒋元根  2013/7/3】
在查询中显示某字段为空值的记录|查询条件为空用IS Null  【恣睢的一天  2014/2/22】
【Access DCount示例】统计子窗体条件为空的记录数示例\...  【麥田  2014/5/2】
常见问答
技术分类
相关资源
文章搜索
关于作者

李子

文章分类

文章存档

友情链接