文字列関数を使って、さまざまな方法でテキストを操作する式を Access で作成できます。 たとえば、フォームのシリアル番号の一部のみを表示したい場合があります。 また、姓と名などの複数の文字列を結合 (連結) しなければならない場合があります。 式をまだ理解していない場合は、「 式を作成する」を参照してください。
Access でよく使われる文字列操作と、それらの実行に使用する関数を以下に示します。
| 目的 | 使用する関数 | 例 | 結果 |
|---|---|---|---|
| 文字列の先頭から文字を返す | Left 関数 | =Left([SerialNumber],2) | [SerialNumber] が "CD234" の場合、結果は "CD" になります。 |
| 文字列の終わりから文字を返す | Right 関数 | =Right([SerialNumber],3) | [SerialNumber] が "CD234" の場合、結果は "234" になります。 |
| 文字列内の文字の位置を調べる | InStr 関数 | =InStr(1,[FirstName],"i") | [名] が "Colin" の場合、結果は 4 になります。 |
| 文字列の真ん中から文字を返す | Mid 関数 | =Mid([SerialNumber],2,2) | [SerialNumber] が "CD234" の場合、結果は "D2" になります。 |
| 文字列から先頭または末尾のスペースを削除する | LTrim 関数、RTrim 関数、および Trim 関数 | =Trim([FirstName]) | [名] が「Colin」の場合、結果は「Colin」になります。 |
| 2 つの文字列を結合する | プラス記号 (+) 演算子* | =[FirstName] + [LastName] | [名] が "Colin" で [LastName] が Wilcox の場合、結果は "ColinWilcox" になります |
| 間にスペースを入れて 2 つの文字列を結合する | プラス記号 (+) 演算子* | =[FirstName] + " " + [LastName] | [名] が "Colin" で [LastName] が Wilcox の場合、結果は "Colin Wilcox" になります |
| 文字列の大文字と小文字を変える | UCase 関数 または LCase 関数 | =UCase([FirstName]) | [名] が "Colin" の場合、結果は "COLIN" になります。 |
| 文字列の長さを調べる | Len 関数 | =Len([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 関数が返す正しい文字数が得られます。 一見複雑に見えますが、少し慣れれば、複数の式を結合して目的の結果が得られるようになります。