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

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

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

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

【问题讨论】:

    标签: ms-access vba ms-access-2016


    【解决方案1】:

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

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

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

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

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

    【讨论】:

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-23
      • 2014-02-24
      • 1970-01-01
      • 2019-05-27
      • 2014-03-23
      相关资源
      最近更新 更多