在 Access 中连接标题和名称字符串

Posted

技术标签:

【中文标题】在 Access 中连接标题和名称字符串【英文标题】:Concatenating Title and Name Strings in Access 【发布时间】:2018-09-28 14:37:58 【问题描述】:

我正在尝试将联系人的头衔、名字和姓氏连接到 Access 报告中的一个字符串中。目前我正在使用控件设置为

的文本字段
=[ContactTitle] & ' ' & [FirstName] & ' ' & [LastName]

但是,一些联系人没有与之关联的标题,并且我的方法留下了前导空格,这使得我的报告上的文本对齐看起来很草率。所以我想知道,如果联系人标题不为空,有没有办法连接但只包含第一个空格?我知道加号运算符,但经验不足,无法在这种情况下看到一种使用它的方法,而不仅仅是让我的整个字符串为空。

【问题讨论】:

【参考方案1】:

您可以使用+ 运算符进行连接。

如果您要连接的任何值是Null,则与+ 连接会产生Null

=([ContactTitle] + " ") & ([FirstName] + " ") & [LastName]

请注意,一些开发人员不赞成使用+ 进行连接,并指出& 是VBA 中的 连接运算符。

另请注意,如果其中一个参数是零长度字符串,这将不起作用。只有真正的 Null 才会导致结果为 Null。

【讨论】:

问题是[ContactTitle]字段可能为空,而不是其他两个。 @Taazar 没错,我也在检查其他字段以说明如何使用这种连接技术。括号是唯一添加的字符,它与执行时间没有真正的关系。 啊,对了,对不起,我以为你可能误读了这个问题。 这太棒了,我从来不知道你能做到这一点,+1【参考方案2】:

您可以使用IIf() 方法检查标题是否为空,然后根据答案插入或不插入空格。

您还可以使用Nz() 方法同时检查零长度字符串和空字符串,方法是将所有空值设置为零长度字符串,然后将结果与"" 进行比较。

我建议您在这里使用的代码是:

=IIf(Nz([ContactTitle],"") = "", "", [ContactTitle] & " ") & [FirstName] & " " & [LastName]

如果您对此有任何问题或需要更好的解释,请发表评论,我会尽快回复您。

【讨论】:

以上是关于在 Access 中连接标题和名称字符串的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 更新查询和带字符串参数的内部连接

如何在 Oracle 身份验证中使用 MS Access 连接字符串

在 Access 中使用文本框值作为字符串

SQL语句如何查询ACCESS数据库中某一字符串字段长度等于某个值的所有记录?

ODBC 连接凭据如何存储在 MS Access 中? [关闭]

C#winform程序连接ACCESS数据库字符串.