Access で複数のテキスト フィールドの値を結合するには、 & 演算子を使用する式を作成します。 たとえば、 Employees という名前のフォームがあるとします。 各社員の姓と名は別々のフィールドに入力しますが、フォーム ヘッダーには社員の氏名を表示したいと考えています。
氏名を表示するには、次の式を使用できます。
=[FirstName] & " " & [LastName]
この式では、 & 演算子を使用して、[ FirstName ] フィールドと [ LastName ] フィールドの値を組み合わせます。 また、二重引用符 (") をスペースで区切って、姓と名の間にスペースを挿入する場合にも使用します。 スペース、句読点、リテラル テキストなど、2 つのフィールドの間に何かを挿入する場合は、値を引用符で囲みます。
次の式を使用して、姓と名をコンマとスペースで区切って表示することもできます。
=[LastName] & ", " & [FirstName]
この場合、式は LastName フィールドと FirstName フィールドの間にカンマと二重引用符で囲まれたスペースを挿入します。
次の手順では、 FirstName と LastName という名前のフィールドを含むテーブルに基づくフォームがあることを前提としています。 それ以外の場合は、独自のデータに合わせて手順 6 の式を変更できます。
テキスト ボックスを追加して氏名の式を設定する
- ナビゲーション ウィンドウで、変更するフォームまたはレポートを右クリックし、ショートカット メニューの [デザイン ビュー] を選択します。
- [ フォーム デザイン ] タブまたは [レポート デザイン ] タブの [ コントロール ] グループで、[ テキスト ボックス] を選択します。
- ポインターをフォームまたはレポートにドラッグしてテキスト ボックスを作成します。
- テキスト ボックスを右クリックし、ショートカット メニューの [プロパティ ] を選択します。
- プロパティ シートで、[ データ ] タブを選択します。
- [ コントロール ソース ] プロパティ ボックスの値を
=[FirstName] & " " & [LastName]に変更します。 - プロパティ シートを閉じて、変更内容を保存します。
結合するフィールドの 1 つに値が含まれていない場合があります。 このデータがない状態は null 値と呼ばれます。 値のないフィールドに & 演算子を使用すると、Access はそのフィールドの長さ 0 の文字列を返します。 たとえば、従業員レコードに姓しかない場合、前の例の式は、長さ 0 の文字列を FirstName フィールド、スペース、および LastName フィールドの値を返します。
-
FirstNameフィールドにはデータがないため、Martinezの先頭には長さ 0 の文字列とスペースが続きます。
複数のフィールドの値を新しい文字列に結合する場合、コンマなどの値を含めたいのは、特定のフィールドにデータが存在する場合のみです。 これを行うには、&演算子の代わりに + 演算子を使用してフィールドを結合します。 たとえば、City、State、Postal Code という名前のフィールドを含む Customer という名前のテーブルがあるとします。 これらのフィールドの値をまとめてレポートを作成しますが、レコードによっては [ State ] フィールドの値がない場合があります。 その場合、 & 演算子を使用すると、郵便番号の前に不要なコンマが表示されます。
不要なコンマを削除するには、次の式に示すように、 + 演算子を使用します。
=([City] & (", " + [State]) & " " & [PostalCode])
+ 演算子は、& 演算子と同じ方法でテキストを結合します。 ただし、 + 演算子は null 値の反映もサポートします。 null 値の反映とは、式のいずれかの構成要素が null の場合、式全体の結果も null 値となることを意味します。 前の例では、式の (", " + [State]) 部分について考えます。
+演算子を使用するため、内側かっこ内の式にコンマが含まれることは、State フィールドに値が存在する場合のみです。
State フィールドに値が存在しない場合、null 値の反映が有効になり、内側のかっこ内の式は null 値として評価されます。 これでコンマが非表示になります。
状態の値を含むレコードは、コンマ、スペース、および状態の略語で表示されます。
CityフィールドにHoustonを含むレコードには状態が指定されていないため、結果はコンマ、スペース、または状態の省略形なしで表示されます。