关于VBA的0、""(空字符串)、Null、Empty、与 Nothing 的区别
时 间:2017-08-02 09:37:28
作 者:smileyoufu ID:1784 城市:成都
摘 要:关于VBA的0、""(空字符串)、Null、Empty、与 Nothing 的区别
正 文:
给某人讲Is Nothing 与 Null 及 “”的区别,说了之后感觉不够完整,百度了一下。从CSDN抄了一段,献给菜鸟
--------------------------------------------------------------------------------------------------------------------------------
Option Explicit
Private Sub Command1_Click()
Dim A As Variant
Dim B As String
Dim C As Integer
Dim D As Object
Debug.Print A = Empty '一个尚未初始化的variant变量是empty
A = Null: Debug.Print A '一个variant变量可以赋值为Null
Debug.Print IsNull(A) '判断一个varint变量是否为Null
Debug.Print B = "" '判断一个string变量为""(空字符串)
Debug.Print C '定义一个integer变量后,它自动初始化为0
Debug.Print D Is Nothing '定义一个object变量后,它自动初始化为nothing
End Sub
'A 等于 Empty, 因为尚未初始化的“不定型变量”都等于 Empty。
'但如果检测 A = "" 或 A = 0, 也都可以得到 True 值。
'B 等于 "", 未初始化或初始化为""的“非固定长度字符串变量”都等于""。
'但请注意'B<> Null。
'C 等于 0, 这个还有问题吗?
'D 等于 Nothing, 尚未初始化的或用set设置为nothing的对象变量都等于 Nothing,
'但请不要使用 D = Nothing , 而要使用 D Is Nothing 来判断 D 是否等于 Nothing,
'因为判断对象是否相等的符号是 Is 不是 = 。
'最令人迷惑的地方是 Null 这个保留字,请看以下语句:
'A = Null
'Print A = Null
'Print A <> Null
'结果都是输出 Null(不是 True 也不是 False),这是因为任何一个运算式只要含有 Null,
'则该运算式就等于 Null,
'实际上想要判断某一数据是否为 Null 绝对不能使用:
'If A = Null Then ' 永远都会得到 Null
'而要使用:
'If IsNull(A) Then
'哪一种数据会等于 Null 呢?除了含有 Null 运算式之外, 就是没有输入任何数据的
'“数据字段”(在数据库中) 会等于 Null。
'后补:B 的默认值是 vbNullString(这个才是空字符串),不是 ""(这个叫零长度的字符串),尤其在调用 API 时是
不能搞混的
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access制作的RGB转CM...(09.22)
- Access制作的RGB调色板...(09.15)
- Access制作的快速车牌输入...(09.13)
- 【Access高效办公】统计当...(06.30)
- 【Access高效办公】用复选...(06.24)
- 根据变化的日期来自动编号的示例...(06.20)
- 【Access高效办公】按日期...(06.12)
- 合并列数据到一个文本框的示例;...(05.06)
- 通过命令按钮让Access列表...(04.24)

学习心得
最新文章
- 关于从Excel导入长文本数据到A...(09.24)
- Access制作的RGB转CMYK...(09.22)
- 关于重装系统后Access开发的软...(09.17)
- Access制作的RGB调色板示例(09.15)
- Access制作的快速车牌输入改进...(09.13)
- Access颜色编号管理数据库--...(09.10)
- 分享一个Access报表最后一页始...(09.03)
- 64位操作系统引用DAO出现加载D...(08.26)
- Access设置试用期截止日期默认...(08.15)
- Access快速开发平台--Err...(08.12)