Vba 将空字符串连接到字符串做什么?

Vba 将空字符串连接到字符串做什么?,vba,Vba,我在编辑的一些代码中遇到了这种约定,在将空字符串分配给另一个变量时,它们经常将空字符串连接到现有字符串 例如: Dim var1 Dim var2=“字符串” var1=var2&“ 我想不出他们这样做的原因,因为&已经将结果变成字符串。这样做有什么原因吗?我想不出一个完全按照您所展示的那样做的原因,但您有时会看到,这是一种用于将某些内容强制转换为字符串类型的模式—例如,在处理数据库记录集时: blah = rs.Fields("foo").Value & "" 字段值可能为nul

我在编辑的一些代码中遇到了这种约定,在将空字符串分配给另一个变量时,它们经常将空字符串连接到现有字符串

例如:

Dim var1
Dim var2=“字符串”
var1=var2&“

我想不出他们这样做的原因,因为
&
已经将结果变成字符串。这样做有什么原因吗?

我想不出一个完全按照您所展示的那样做的原因,但您有时会看到,这是一种用于将某些内容强制转换为字符串类型的模式—例如,在处理数据库记录集时:

blah = rs.Fields("foo").Value & "" 
字段值可能为
null
,而您只需要一个空字符串

如果表达式不是字符串,则会将其转换为字符串变量。 如果两个表达式都是字符串,则结果的数据类型为字符串 表达;否则,结果是字符串变量

如果两个表达式都为Null,则结果为Null。然而,如果只有一个 表达式为Null,则该表达式被视为零长度字符串 (“”)与其他表达式连接时。任何表达 is Empty也被视为长度为零的字符串


不过还是很难看。在T-SQL中使用
ISNULL
(假设SQL Server;Access中的
Nz
函数)将
NULL
值合并到服务器端的空字符串中,因此VBA客户端不需要执行此类操作。因此,简短的版本是“除非您处理的是
Null
值,否则没有必要这样做”,感谢您的解释。这是我第一次碰到。从Access 1.0开始,我就使用了NZ的本地版本。现在,新西兰是内置的访问(自2003年以来),这就是我使用的。我想说,根本没有理由使用这种构造——NZ更清楚地表明了您的意图。我同意假设您控制了记录集的源语句。