在 Access 中连接标题和名称字符串
Concatenating Title and Name Strings in Access
我正在尝试将联系人的头衔、名字和姓氏连接到 Access 报表中的一个字符串中。目前,我正在使用控件设置为
的文本字段
=[ContactTitle] & ' ' & [FirstName] & ' ' & [LastName]
但是,有些联系人没有与之关联的头衔,我的方法留下了前导 space,这使得我的报告中的文本对齐方式看起来很草率。所以我想知道,有没有一种方法可以连接但只包含第一个 space 如果联系人标题不为空?我知道加号运算符,但没有足够的经验来了解在这种情况下如何使用它而不只是让我的整个字符串为空。
您可以使用 +
运算符进行串联。
如果您要串联的任何值是 Null
:
,则与 +
串联会产生 Null
=([ContactTitle] + " ") & ([FirstName] + " ") & [LastName]
请注意,一些开发者不赞成使用 +
进行连接,并指出 &
是 VBA 中的 连接运算符。
另请注意,如果其中一个参数是零长度字符串,这将不起作用。只有真正的 Null 才会导致结果为 Null。
您可以使用 IIf()
方法检查标题是否为空,然后根据答案插入或不插入 space。
您还可以使用 Nz()
方法在检查空字符串的同时检查 zero-length 字符串,方法是将所有空值设置为 zero-length 字符串,然后比较结果 ""
.
我建议您在此处使用的代码是:
=IIf(Nz([ContactTitle],"") = "", "", [ContactTitle] & " ") & [FirstName] & " " & [LastName]
如果您对此有任何疑问或需要更好的解释,请发表评论,我会尽快回复您。
我正在尝试将联系人的头衔、名字和姓氏连接到 Access 报表中的一个字符串中。目前,我正在使用控件设置为
的文本字段=[ContactTitle] & ' ' & [FirstName] & ' ' & [LastName]
但是,有些联系人没有与之关联的头衔,我的方法留下了前导 space,这使得我的报告中的文本对齐方式看起来很草率。所以我想知道,有没有一种方法可以连接但只包含第一个 space 如果联系人标题不为空?我知道加号运算符,但没有足够的经验来了解在这种情况下如何使用它而不只是让我的整个字符串为空。
您可以使用 +
运算符进行串联。
如果您要串联的任何值是 Null
:
+
串联会产生 Null
=([ContactTitle] + " ") & ([FirstName] + " ") & [LastName]
请注意,一些开发者不赞成使用 +
进行连接,并指出 &
是 VBA 中的 连接运算符。
另请注意,如果其中一个参数是零长度字符串,这将不起作用。只有真正的 Null 才会导致结果为 Null。
您可以使用 IIf()
方法检查标题是否为空,然后根据答案插入或不插入 space。
您还可以使用 Nz()
方法在检查空字符串的同时检查 zero-length 字符串,方法是将所有空值设置为 zero-length 字符串,然后比较结果 ""
.
我建议您在此处使用的代码是:
=IIf(Nz([ContactTitle],"") = "", "", [ContactTitle] & " ") & [FirstName] & " " & [LastName]
如果您对此有任何疑问或需要更好的解释,请发表评论,我会尽快回复您。