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更清楚地表明了您的意图。我同意假设您控制了记录集的源语句。