Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

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

时 间:2017-02-24 16:37:14
作 者:李子   ID:50504  城市:宁波
摘 要: 当组合框在没有默认值的情况下加载时,系统自动先赋值了空字符串:"",但在组合框中选择某值后再删除时,则系统赋予了空值。
正 文:

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

一、使用 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交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助