设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3721|回复: 4
打印 上一主题 下一主题

[模块/函数] 关于VBA的0、""(空字符串)、Null、Empty、与 Nothing 的区别

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2017-8-2 09:47:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
给网友讲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 时是
        不能搞混的

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2017-8-2 09:53:46 | 只看该作者
赞。不错
回复

使用道具 举报

点击这里给我发消息

3#
发表于 2017-8-2 19:56:03 | 只看该作者
赞一个。的确这个问题问的人特别多
上次我一天被3个网友问到这个问题。
后来一气之下,也弄了一篇。我找找

点击这里给我发消息

4#
发表于 2017-8-2 19:56:28 | 只看该作者
Access学习必读--Null 空字符,空格 之区别 详细教程
http://www.office-cn.net/article/97.html
5#
发表于 2017-8-3 08:31:06 | 只看该作者
tmtony 发表于 2017-8-2 19:56
Access学习必读--Null 空字符,空格 之区别 详细教程
http://www.office-cn.net/article/97.html

谢谢!我也遇到过这种情况,还打算发帖求助的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-29 04:31 , Processed in 0.097060 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表