一个区别空值和空字符串(“”)的小例子
时 间: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交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)
- 【Access高效办公】上月累...(01.06)
- 【Access Inputbo...(12.23)
- 【Access Dsum示例】...(12.16)

学习心得
最新文章
- 仓库管理实战课程(7)-创建查询(03.31)
- 仓库管理实战课程(6)-创建查询(03.29)
- 仓库管理实战课程(5)-字段属性(03.27)
- 设备装配出入库管理系统;基于Acc...(03.24)
- 仓库管理实战课程(4)-建表操作(03.22)
- 仓库管理实战课程(3)-需求设计说...(03.19)
- 仓库管理实战课程(2)-软件背景和...(03.18)
- 仓库管理实战课程(1)-讲师介绍(03.16)
- 统计当月之前(不含当月)的记录数怎...(03.11)
- 【Access Inputbox示...(03.03)