文字列関数を使って、さまざまな方法でテキストを操作する式を Access で作成できます。 たとえば、フォームのシリアル番号の一部のみを表示したい場合があります。 また、姓と名などの複数の文字列を結合 (連結) しなければならない場合があります。 まだ式について詳しくない場合は、「式を作成する」を参照してください。
Access の一般的な文字列演算子と、それを実行するための関数の一部を、以下に示します。
目的 |
使用する関数 |
例 |
結果 |
---|---|---|---|
文字列の先頭から文字を返す |
=Left([SerialNumber],2) |
[SerialNumber] が “CD234” の場合、結果は “CD” です。 |
|
文字列の終わりから文字を返す |
=Right([SerialNumber],3) |
[SerialNumber] が “CD234” の場合、結果は “234” です。 |
|
文字列内の文字の位置を調べる |
=InStr(1,[FirstName],"i") |
[FirstName] が “Colin” の場合、結果は 4 です。 |
|
文字列の真ん中から文字を返す |
=Mid([SerialNumber],2,2) |
[SerialNumber] が “CD234” の場合、結果は “D2” です。 |
|
文字列から先頭または末尾のスペースを削除する |
=Trim([FirstName]) |
[FirstName] が “ Colin ” の場合、結果は “Colin” です。 |
|
2 つの文字列を結合する |
プラス記号 (+) 演算子* |
=[FirstName] + [LastName] |
[FirstName] が “Colin”、[LastName] が Wilcox の場合、結果は “ColinWilcox” です。 |
間にスペースを入れて 2 つの文字列を結合する |
プラス記号 (+) 演算子* |
=[FirstName] + “ “ + [LastName] |
[FirstName] が“Colin”、[LastName] が Wilcox の場合、結果は “Colin Wilcox” です。 |
文字列の大文字と小文字を変える |
=UCase([FirstName]) |
[FirstName] が “Colin” の場合、結果は “COLIN” です。 |
|
文字列の長さを調べる |
=Len([FirstName]) |
[FirstName] が “Colin” の場合、結果は 5 です。 |
* 関数ではなく、演算子です。 ただし、この方法が最も簡単に文字列を結合することができます。 デスクトップ データベースでは、アンパサンド演算子 (&) を使って結合することもできます。
Access には、さらに多くのテキスト関連関数があります。 詳細については、式ビルダーを開き、関数リストを参照することをお勧めします。 式ビルダーは、式を構築するほぼすべての場所で使用できます。通常は、次のような小さな [ビルド ] ボタンがあります:
式ビルダーを実際に使うには、フォームまたはビューの [コントロール ソース] プロパティで開きましょう。 使っているのがデスクトップ データベースか Access Web アプリかに応じて、以下のいずれかのプロシージャを使います。
デスクトップ データベースに式ビルダーを表示する
-
デスクトップ データベース (.accdb) を開きます。
-
ナビゲーション ウィンドウがまだ開いていない場合は、F11 キーを押して開きます。
-
既にフォームがある場合は、ナビゲーション ウィンドウで右クリックして [レイアウト ビュー] をクリックします。 操作するフォームがない場合は、[作成]、[フォーム] の順にクリックします。
-
フォームのテキスト ボックスを右クリックし、[プロパティ] をクリックします。
-
プロパティ シートで、[すべての > 管理ソース] をクリックし、[コントロール ソース] プロパティ ボックスの右側にある [ビルド] ボタン をクリックします。
-
[式の要素] で、[関数] ノードを展開し、[組み込み関数] をクリックします。
-
[式のカテゴリ] で、[文字列] をクリックします。
-
[式の値] で、関数をクリックして、式ビルダーの下の簡単な説明を読みます。
注: コンテキストによって使える関数は違います。各コンテキストで機能する関数に応じて、一覧が自動的にフィルターされます。
TEXT 関数を結合して柔軟性を高める
一部の文字列関数には数値引数が含まれ、場合によっては、関数を呼び出すたびに計算が必要です。 たとえば、LEFT 関数は、=Left(SerialNumber, 2) のように文字列と数値を取ります。 常に左の 2 文字が必要であるとわかっている場合は便利ですが、必要な文字数がアイテムによって変わる場合はどうなるでしょうか。 文字数を単に "ハード コーディング" する代わりに、文字数を計算する別の関数を入力することができます。
以下は、文字列にハイフンが含まれるシリアル番号の例です。 ただし、ハイフンの位置は異なります。
シリアル番号 |
---|
3928-29993 |
23-9923 |
333-53234 |
3399940-444 |
ハイフンの左に数字を表示したい場合、ハイフンの位置を確認するために毎回計算を行う必要があります。 以下の選択肢もあります。
=Left([SerialNumber],InStr(1,[SerialNumber],"-")-1)
Left 関数の 2 番目の引数として数値を入力する代わりに、シリアル番号のハイフンの位置を返す InStr 関数を接続しました。 この値から 1 を引くと、Left 関数が返す正しい文字数が得られます。 一見複雑に見えますが、少し慣れれば、複数の式を結合して目的の結果が得られるようになります。