如果要在 Access 中合并两个或多个文本字段中的值,请创建一个表达式,该表达式使用和 (&) 运算符。 例如,假设你拥有名为“员工”的窗体。 你在单独字段中输入每个员工的姓氏和名字,但想要在窗体页眉中显示员工的完整姓名。
若要显示完整姓名,可使用此表达式:
=[FirstName] & " " & [LastName]
该表达式使用 & 运算符来合并“FirstName”和“LastName”字段中的值。 此外,该表达式还使用一对由一个空格字符隔开的双引号 (") 在名字和姓氏之间插入一个空格。 若要在两个字段之间插入一些内容(如空格、标点字符或文字类型的文本)时,必须使用引号将该附加值引起来。
又例如,可以使用以下表达式来显示姓氏和名字,由逗号和空格隔开:
=[LastName] & ", " & [FirstName]
在此情况下,该表达式在“LastName”和“FirstName”字段之间插入了用引号引起来的逗号和空格。
以下过程中的步骤假定你拥有基于包含名为“FirstName”和“LastName”字段的表的窗体。 否则,你可在步骤 6 中更改表达式以符合你自己的数据。
使用表达式为完整名称添加文本框
-
在导航窗格中,右键单击要更改的窗体或报表,然后单击快捷菜单上的“设计视图”。
-
在“ 窗体设计 ”或“ 报表设计 ”选项卡上的“ 控件 ”组中,单击“ 文本框”。
-
在窗体或报表上拖动指针,创建文本框。
-
右键单击文本框,然后单击快捷菜单上的“属性”。
-
在属性表中,单击“数据”选项卡。
-
将“控件来源”属性框中的值更改为 =[FirstName] & " " & [LastName]。
-
关闭属性表并保存所做更改。
有时,想要合并的字段之一可能不包含值。 此缺失的数据称为 null 值。 将 & 运算符用于不包含值的字段时,Access 将为该字段返回 零长度字符串。 例如,如果某位员工记录仅具有姓氏,则以上示例中的表达式将为“FirstName”字段、空格字符和“LastName”字段中的值返回零长度字符串。
1.由于“FirstName”字段中没有任何数据,因此“Martinez”的前面为零长度字符串和空格。
将多个字段中的值合并为一个新字符串时,可能需要在仅当数据存在于特定字段中时,将一个值(如逗号)添加在新字符串中。 若要有条件地添加值,请使用 + 运算符而非 & 运算符来合并字段。 例如,假设你拥有一个名为“客户”的表,该表包含名为“市/县”、“省/自治区/直辖市”和“邮政编码”的字段。 你想在报表中合并这些字段中的值,但“省/自治区/直辖市”字段中的一些记录可能不包含值。 在这种情况下,如果使用 & 运算符来合并字段,最终会在邮政编码值前显示不需要的逗号。
若要去除不需要的逗号,可改为使用加号 (+) 运算符,如以下示例表达式中所示:
=([City] & (", " + [State]) & " " & [PostalCode])
+ 运算符合并文本的方式与 & 运算符相同。 但是,+ 运算符还支持 Null 传播。 Null 传播可确保如果表达式的任何组件为 null,则整个表达式的结果也为 null。 在以上示例中,请考虑表达式的以下部分:(", " + [State])。 由于已使用 + 运算符,因此仅当“省/自治区/直辖市”字段中存在值时,在内部括号中进行求值的表达式才会包含逗号。 如果“省/自治区/直辖市”字段中不存在值,Null 传播将生效,且内部括号中的表达式的求值结果为 null 值,从而“隐藏”逗号。
1.包含“省/自治区/直辖市”的值的记录显示为一个逗号、一个空格和“省/自治区/直辖市”缩写形式。
2.由于其“市/县”字段中具有值“休斯顿”的记录中未指定“省/自治区/直辖市”,因此该表达式的结果不包含逗号、空格或“省/自治区/直辖市”缩写形式。