當您想要在 Access中合併兩個或多個文字欄位中的值時,您會建立使用安培和 (&) 運算子的表達式。 例如,假設您有一份稱為「員工」的表單。 您在個別的欄位中輸入每個員工的名字和姓氏,但您想要在表單首中顯示員工的全名。
若要顯示全名,您可以使用下列運算式:
=[FirstName] & " " & [LastName]
此運算式使用 & 運算子合併 FirstName 和 LastName 欄位中的值。 此運算式也使用一對以空格字元隔開的雙引號 ("),在名字與姓氏之間插入一個空格。 當您想要在兩個欄位之間插入某個項目 (例如空格、標點符號字元或常值文字),您必須以雙引號括住該額外的值。
另一個範例是,您可以使用下列運算式顯示姓氏和名字,並以逗號和空格隔開:
=[LastName] & ", " & [FirstName]
在此情況下,此運算式在 LastName 和 FirstName 欄位之間插入以雙引號括住的逗號和空格。
下列程序中的步驟假設您有一份表單,且該表單是以包含名為 FirstName 和 LastName 的欄位的資料表為基礎。 若非如此,您可以在步驟 6 中更改運算式以符合您自己的資料。
新增含有全名運算式的文字方塊
-
在 [瀏覽窗格] 中,以滑鼠右鍵按一下您要變更的表單或報表,然後按一下捷徑功能表上的 [設計檢視]。
-
在 [表 單設計 ] 或 [ 報表設計 ] 索引標籤的 [ 控件] 群組中,按兩下 [文字框]。
-
拖曳表單或報表上的指標以建立文字方塊。
-
以滑鼠右鍵按一下文字方塊,然後按一下捷徑功能表上的 [屬性]。
-
按一下屬性表中的 [資料] 索引標籤。
-
將 [控制項資料來源] 屬性方塊中的值變更為 =[FirstName] & " " & [LastName]。
-
關閉屬性表並儲存您的變更。
有時您要合併的其中一個欄位可能未包含值。 缺少資料即稱為 Null 值。 當您在沒有值的欄位上使用 & 運算子時,Access 會針對該欄位傳回零長度字串。 例如,如果員工的記錄只有姓氏,上述範例中的運算式會針對 FirstName 欄位傳回零長度字串、空格字元,以及 LastName 欄位中的值。
1.因為 FirstName 欄位中沒有資料,「Martinez」前面會加上零長度字串和空格。
當您將多個欄位的值合併為一個新字串,只有在某個特定欄位中存在資料時,您才可能會想要在新字串中包含某個值 (例如逗號)。 若要有條件地包含某個值,則須使用 + 運算子 (而不是 & 運算子) 來合併您的欄位。 例如,假設您有一份稱為「客戶」的資料表,而該資料表包含稱為 City、State 和 PostalCode 的欄位。 您想要合併報表的這些欄位中的值,但某些記錄在 [縣/市] 欄位中可能沒有值。 在這種情況下,如果您使用 & 運算子來合併欄位,最終會變成郵遞區號值的前面出現不想要的逗號。
若要消除不想要的逗號,您可以改用加號 (+) 運算子 (如下列範例運算式所示):
=([City] & (", " + [State]) & " " & [PostalCode])
+ 運算子使用與 & 運算子相同的方式合併文字。 不過,+ 運算子也支援所謂的 Null 傳播。 Null 傳播確保運算式中如有任何元件為 Null,則整個運算式的結果也為 Null。 在上述範例中,請考慮運算式的 (", " + [State]) 部分。 因為使用 + 運算子,只有在 [State] 欄位中存在值時,內括號中評估的運算式才會包含括號。 如果 [State] 欄位中沒有值存在,Null 傳播會生效,而且內括號中的運算式會評估為 Null 值,因而「隱藏」逗號。
1.包含州值的記錄會顯示逗號、空格和州名縮寫。
2.由於未對 City 欄位中含有休士頓值的記錄指定州,因此運算式的結果不會顯示逗號、空格或州名縮寫。