IsNull(x)和x =“”之间有区别吗?

时间:2016-12-21 13:14:30

标签: vba access-vba

在if语句中,我总是必须使用if isnull(x) or x = "" then

两者之间有什么区别,为什么在某些情况下它们都不起作用?

5 个答案:

答案 0 :(得分:5)

NULL缺少值*

""是零长度字符串

由于隐式转换 - 一个尚未填充的对象可能在两种情况下都返回true。但是,如果您要在其中放置""的值,则isnull()将返回False,而= ""则返回True

*感谢Comintern改进解释(见评论)

答案 1 :(得分:3)

如果你做那个检查,那么x必须是 Variant ,而Null不是" Nothing"。没有什么意思是空的,并且存在特殊检查。

运行此命令并查看:

$anchorScroll();
$location.hash('');
$location.replace();

答案 2 :(得分:2)

正如其他答案所说,null无效,""是一个空字符串。

要在访问VBA中测试空变量和空变量,请使用以下命令:

If nz([variable], "") = "" Then do stuff

nz函数将空变量转换为""或0

答案 3 :(得分:0)

当我想检查null /空字符串时 我用

[Route("api/markers/getgrantsis")]
public HttpResponseMessage GetGrantsIS()
{
  XmlDocument docContent = GetXmlDataFromDB();
  return new HttpResponseMessage
  {
    Content = new StringContent(docContent.InnerXml.ToString(), Encoding.UTF8, "application/xml")
   };

}

答案 4 :(得分:-1)

isnull表示该值未知,而编辑: ""表示它是零长度字符串*

* Credit:@Macro Man。