式を作成する

重要:  この記事は機械翻訳されています。機械翻訳についての「免責事項」をお読みください。この記事の英語版を参照するには、ここをクリックしてください。

Access データベースで式を作成するには、式を使用するオブジェクトまたはプロパティを選び、Ctrl キーを押しながら F2 キーを押します。これで、式ビルダーが開きます。式ビルダーは、時間を節約するために部分的に作成された式や、手間を省くための組み込みヘルプが多数含まれたツールです。式を使用して、データに対してあらゆる処理を実行できます。たとえば注文が出荷されてからの経過日数を判別したり、FirstName と LastName を FullName に統合したりできます。Excel をよく使用している方は、式を Access 版の数式と考えてください。

Access web app とデスクトップ データベースで、一部の式は同じように機能しません。この記事ですべてに適用されます web アプリと、データベースの両方を除く別途記載されています。

式を使用するタイミング、式の作成方法など、式について詳しくは、この記事を参照してください。

この記事の内容

式の概要

式ビルダーを使用しているようす

フォームおよびレポートのコントロールの値を計算する

クエリ条件として式を使用する

クエリに集計フィールドを作成する

テーブルに集計フィールドを作成する

テーブルのフィールドまたはレコードに入力規則を追加する

コントロールに入力規則を追加する

テーブルのフィールドに既定値を設定する

コントロールに既定値を設定する

実行するマクロ アクションを制御する

レポート内のデータのグループ化および並べ替えを行う

式の概要

数学の授業で習った数式を思い出してください。 x2+z = (2y-1)/7で x の解を求める、といったものです。また、数式が近代工学の基礎であることも覚えているでしょう。何かを建てようと思ったら、数式を使用して "吹き抜けの階段を支えるボルトはどれくらいの太さにする必要があるか" といった問題を考えます。この場合、xyz の代わりに [単価][割引][数量] を考えます。また、式では数学だけではなく、テキスト データに関するあらゆる処理が実行できます。

式で実行できること

以下は、式でできる多くの処理のほんの一例にすぎません。

  • 年齢を計算する

  • 姓と名を組み合わせる

  • 日付や時刻が変更されたレコードをマークする

  • 入力の一致が必要な定型データを指定する

  • テキスト行の片側の文字をトリミングする

技術的な概要

注: このセクションの内容は、式を作成するうえで必須ではありませんが、式のしくみについて理解を深めることができます。また、ここで使われている専門用語は、MSDN のようなより専門的なサイトで関連情報を探すのに役立ちます。

式は、組み込みまたはユーザー定義の関数、識別子、演算子、および定数のいずれか、またはすべての組み合わせです。式は、単一の値に評価されます。

式の構成要素

たとえば、次の式はこれらの 4 つの要素をすべて含んでいます。

=Sum([購入価格])*0.08

この例では、Sum() は組み込み関数、[購入価格] は識別子、* は数値演算子、0.08 は定数です。この式は、フォーム フッターまたはレポート フッターのテキスト ボックスで、一連の項目の売上税を計算するために使用できます。

この例よりもさらに複雑な式や単純な式も作成できます。たとえば、次のブール式 (True または False に評価される式) は、演算子と定数のみで構成されます。

>0

この式は、0 より大きい数値と比較された場合に True を返し、0 以下の数値と比較された場合に False を返します。この式をコントロールまたはテーブル フィールドの "入力規則" プロパティで使用すると、0 より大きい値のみが入力されるように強制できます。

Access では、計算の実行、文字の操作、データの検査などのさまざまな場面で式が使用されます。テーブル、クエリ、フォーム、レポート、およびマクロには、式を使用できるプロパティがあります。たとえば、コントロールの "コントロール ソース" プロパティおよび "既定値" プロパティで式を使用できます。さらに、イベント プロシージャやモジュールの Microsoft Visual Basic for Applications (VBA) コードを作成するときにも、テーブルやクエリなどの Access オブジェクトで使用するものと似た式を使用することがよくあります。

ページの先頭へ

式ビルダーを使用する

式ビルダーには次の利点があります。

  • 簡単に関数、演算子、定数、および識別子を検索して挿入できるため (たとえば、フィールド、テーブル、フォーム、およびクエリの名前)、時間を節約し、エラーを削減できます。

  • 式ビルダーは、式のコンテキストに基づいて使用できる式の一部を制限します。

  • ページ番号、現在の日付、現在の日付と時刻など、用意されたさまざまな式の中から選ぶことができます。

  • 式ビルダーでは、IntelliSense を使用することができます。そのため、式で必要なすべての引数を覚えておく必要はありません。

  • 式ビルダーではすぐにヘルプを参照することができます。クイック ヒント ツールに表示されるリンクをクリックするだけです。

式ビルダーを起動する

式ビルダーを起動するためのキーボード ショートカットは、Ctrl + F2 キーです。このショートカットを初めて使用すると、[ビルダーの選択] ダイアログ ボックスが起動します。続行するには、ダイアログ ボックスの [式ビルダー] をダブルクリックするだけです。

詳細については、「式ビルダーを使用する」を参照してください。

Web データベースでは式の入れ子の制限は 65

65 レベルよりも深い入れ子の式はブラウザーで動作しないため、Access Web データベースでそのような式は使用できません。エラー メッセージは表示されませんが、式が機能しません。

重要: &ANDOR 演算子を使用すると、Access のクライアントに反映されないレベルの入れ子が、サーバーに追加作成される場合があります。たとえば、式 "a" & "b" & "c" は式ビルダーで入れ子になりませんが、SharePoint では concatenate.Db("a", concatenate.Db("b", "c") )。この場合、1 レベルの入れ子が作成されます。1 つの式で多くの &ANDOR 演算子を連続して使用すると、サーバーの入れ子制限である 65 を超える場合があり、ブラウザーで式が機能しなくなります。

ページの先頭へ

フォームおよびレポートのコントロールの値を計算する

式をコントロールのデータ ソースとして使用するときは、演算コントロールを作成します。たとえば、複数の在庫レコードを表示するレポートがあり、レポートのすべての項目を集計した合計をレポート フッターに作成するとします。

レポートの合計

合計を計算するには、レポート フッターにテキスト ボックス コントロールを配置し、次の式にテキスト ボックスの "コントロール ソース" プロパティを設定します。

=Sum([ table_field ])

この場合、table_field は小計値を格納するフィールドの名前です。このフィールドは、テーブルまたはクエリから取得できます。Sum 関数は、table_field のすべての値の合計を計算します。

次の手順では、テキスト ボックス コントロールに式を入力する方法を説明します。

テキスト ボックス コントロールに式を入力する

  1. ナビゲーション ウィンドウで、変更するフォームを右クリックし、ショートカット メニューの [レイアウト ビュー] または [デザイン ビュー] をクリックします。

  2. 式を入力するコントロールを選びます。

  3. プロパティ シートが表示されていない場合は、F4 キーを押して表示します。

  4. 式を手動で作成するには、プロパティ シートの [データ] タブで、テキスト ボックスの "コントロール ソース" プロパティをクリックし、= の後に残りの式を入力します。たとえば、上記の小計を計算するには、「=Sum([table_field])」と入力し、table_field を実際のフィールド名に置き換えます。

  5. 式ビルダーを使用して式を作成するには、プロパティ ボックスで ボタン イメージ (ビルド) をクリックします。

    式の入力が完了すると、プロパティ シートは次のようになります。

    テキスト ボックスのコントロール ソース プロパティの式

ページの先頭へ

クエリ条件として式を使用する

クエリの結果を絞り込むには、クエリで抽出条件を使用します。式としての抽出条件を入力し、アクセスが式に一致する行のみを返します。広範な例については、クエリの抽出条件の例」を参照してください。

たとえば、出荷日が 2010 年の 1 ~ 3 月に発生したすべての注文を確認したいとします。抽出条件を入力するには、クエリの日付/時刻列の [抽出条件] セルに、次の式を入力します。この例では、[出荷日] という日付/時刻列が使用されます。日付範囲を定義するには、次のように抽出条件を入力します。

Between #1/1/2010# And #3/31/2010#

[出荷日] 列は、次のようになります。

クエリ グリッドの [抽出条件] 行の式

"注文" テーブルの各レコードで、[出荷日] 列の値が指定した日付範囲にある場合、そのレコードはクエリの出力に含まれています。式では、日付をシャープ記号 (#) で囲むことにご注意ください。Access で、シャープ記号 (#) で囲まれた値は日付/時刻のデータ型として処理されます。このような値を日付/時刻データとして処理することで、一方からもう一方への減算などの計算を値に対して実行することができます。

クエリ デザイン グリッドに抽出条件を入力する

  1. ナビゲーション ウィンドウで、変更するクエリを右クリックし、ショートカット メニューの [デザイン ビュー] をクリックします。

  2. 入力対象の列の [抽出条件] セルをクリックします。

  3. 手動で式を作成するには、抽出条件式を入力します。

    注: 抽出条件式の前に = 演算子を入力しないでください。

  4. 式ビルダーを使用して式を作成するには、リボンで [デザイン] をクリックし、[クエリ設定] で [ビルダー] ボタン イメージ をクリックします。

    式の編集領域を大きくするには、[抽出条件] セルにカーソルを置いて、Shift キーを押しながら F2 キーを押すと、[ズーム] ボックスが表示されます。

    [ズーム] ダイアログ ボックス内の式

ページの先頭へ

クエリに集計フィールドを作成する

クエリを設計しており、クエリの他のフィールドを使用して、計算の結果を表示したいとします。集計フィールドを作成するには、クエリの [フィールド] 行にある空白セルに式を入力します。たとえば、"数量" フィールドと "単価" フィールドを含むクエリがある場合、クエリの [フィールド] 行に次の式を入力して 2 つを乗算し、[明細金額] の集計フィールドを作成することができます。

明細金額: [数量] * [単価]

"明細金額:" というテキストが前にある式には、"明細金額" という新しい列名が付けられます。この名前は別名とも呼ばれます。別名を指定しない場合は、Expr1 などの別名が作成されます。

クエリに計算フィールドを作成する式の使用

クエリを実行すると、次の図に示すように、各行で計算が実行されます。

データシート ビューに表示される集計フィールド

クエリのデザイン ビューで集計フィールドを作成する

  1. ナビゲーション ウィンドウで、変更するクエリを右クリックし、ショートカット メニューの [デザイン ビュー] をクリックします。

  2. 集計フィールドを作成する列の [フィールド] セルをクリックします。

  3. 手動で式を作成するには、式を入力します。

    注: 抽出条件式の前に = 演算子を使用しないでください。代わりに、説明的なラベルの後に続けてコロンを使用します。たとえば、「明細金額:」と入力して、"明細金額" という集計フィールドを作成する式のラベルを指定します。次に、コロンの後に式の抽出条件を入力します。

  4. 式ビルダーを使用して式を作成するには、リボンで [デザイン] をクリックし、[クエリ設定] で [ビルダー] をクリックします。

ページの先頭へ

テーブルに集計フィールドを作成する

Access では、テーブルの中に集計フィールドを作成することができます。これにより、計算を行うためのクエリは必要なくなります。たとえば、注文の各項目の数量、価格、税率を表示するテーブルがある場合は、次の式で合計金額を表示する集計フィールドも追加することができます。

[数量]*([単価]+([単価]*[税率]))

  • 集計には、他のテーブルやクエリのフィールドを含めることはできません。

  • 集計結果は読み取り専用です。

集計フィールドを作成するには、次の操作を行います。

  1. ナビゲーション ウィンドウでテーブルをダブルクリックして開きます。

  2. テーブルの右端の列まで横方向にスクロールし、[クリックして追加] 列見出しをクリックします。

  3. 表示される一覧で [集計フィールド] をクリックし、結果に必要なデータ型をクリックします。

    式ビルダーが表示されます。

  4. このフィールドに必要な計算を入力します。たとえば、次のように入力します。

    [数量] * [単価]

    注: 集計フィールドの式の先頭に等号 (=) を入力しないでください。

  5. [OK] をクリックします。

    集計フィールドが追加され、フィールド名を入力できるようにフィールドの見出しが強調表示されます。

  6. 集計フィールドの名前を入力し、Enter キーを押します。

ページの先頭へ

テーブルのフィールドまたはレコードに入力規則を追加する

式は、データベースに入力されるデータを検証し、無効なデータを除外するのに非常に便利です。テーブルには、2 種類の入力規則があります。フィールドの入力規則 (ユーザーが 1 つのフィールドに無効なデータを入力できないようにする) と、レコードの入力規則 (ユーザーが入力規則に一致しないレコードを作成できないようにする) です。どちらの入力規則にも式を使用します。

たとえば、"手持在庫" という名前のフィールドがある "在庫" というテーブルで、0 以上の値を入力するようにユーザーに強制する規則を設定したいとします。つまり、在庫を負の数にすることはできません。これを行うには、"手持在庫" フィールドで次の式をフィールドの入力規則として使用します。

>=0

入力規則を入力する

フィールドの入力規則またはレコードの入力規則を入力するには、次の操作を行います。

  1. ナビゲーション ウィンドウで、変更するテーブルをダブルクリックします。

    テーブルがデータシート ビューに表示されます。

  2. フィールドの入力規則を入力する場合、変更するフィールドを選びます。

  3. リボンの [フィールド] をクリックし、[フィールドの入力規則] で [入力規則] をクリックし、[フィールドの入力規則] または [レコードの入力規則] をクリックします。

    式ビルダーが表示されます。

  4. 抽出条件の入力を開始します。たとえば、すべての値を 0 以上にする必要があるフィールドの入力規則の場合は、次のように入力します。

    >=0

    注: 式の前に等号 (=) を付けないでください。

入力規則の式はブール型です。つまり、特定の入力値に対して True または False のいずれかになります。入力規則では値に対して True である必要があります。True でない場合、入力は保存されず、エラーを示す検証メッセージが表示されます。この例で、"手持在庫" フィールドに 0 を下回る値を入力した場合は、入力規則が False になり、Access が値を受け付けません。次のセクションで説明されたとおりに検証メッセージを入力していない場合は、フィールドの入力規則によって入力した値が禁止されていることを示す独自のメッセージが表示されます。

検証メッセージを入力する

より簡単にデータベースを使用するため、カスタム検証メッセージを入力することができます。このメッセージは、データが入力規則に一致しないときに表示される標準メッセージと置き換えられます。カスタム検証メッセージを使用して、たとえば、"手持在庫の値を負の値にすることはできません。" のように、ユーザーが正しいデータを入力できるようにする特定の情報を提供することができます。検証メッセージは次の手順で作成します。

  1. ナビゲーション ウィンドウで、変更するテーブルをダブルクリックします。

    テーブルがデータシート ビューに表示されます。

  2. フィールドの検証メッセージを作成する場合、入力規則を追加するフィールドを選びます。

  3. リボンの [フィールド] をクリックし、[フィールドの入力規則] で [入力規則] をクリックし、[フィールドの検証メッセージ] または [レコードの入力規則メッセージ] をクリックします。

  4. [検証メッセージの入力] ダイアログ ボックスで、データが入力規則に一致しないときに表示するメッセージを入力し、[OK] をクリックします。

ページの先頭へ

コントロールに入力規則を追加する

注: Access Web アプリや Web データベースのコントロールに対して入力規則を使うことはできません。代わりに、前のセクションで説明したように、フィールドまたはレコードの入力規則を使用します。

テーブルのフィールドとレコードだけでなく、コントロールにも、式を使用できる "入力規則" プロパティがあります。たとえば、フォームを使用してレポートの日付範囲を入力し、開始日を 2010 年 1 月 1 日より後にしたいとします。開始日を入力するテキスト ボックスの "入力規則" プロパティと "エラーメッセージ" プロパティを次のように設定することができます。

プロパティ

設定

入力規則

>=#1/1/2010#

エラー メッセージ

2010 年 1 月 1 日より前の日付を入力することはできません。

2010 年 1 月 1 日より前の日付を入力しようとすると、メッセージが表示され、"エラーメッセージ" プロパティのテキストが表示されます。"エラーメッセージ" プロパティ ボックスにテキストが入力されていない場合は、Access の汎用メッセージが表示されます。[OK] をクリックすると、テキスト ボックスに戻ります。

ヒント: テーブル フィールドに対する入力規則を設定すると、その規則はデータベース全体に適用されます。つまり、そのフィールドが変更されたときは必ず適用されます。または、フォームのコントロールに入力規則を設定すると、そのフォームが使用されている場合にのみ規則が適用されます。テーブルのフィールドおよびフォームのコントロールに個別に入力規則を設定すると、ユーザーごとに異なる入力規則を作成する場合に便利です。

コントロールの入力規則を入力する

  1. ナビゲーション ウィンドウで、変更するフォームまたはレポートを右クリックし、ショートカット メニューの [デザイン ビュー] または [レイアウト ビュー] をクリックします。

  2. 変更するコントロールを右クリックし、ショートカット メニューの [プロパティ] をクリックします。

    コントロールのプロパティ シートが表示されます。

  3. [すべて] タブをクリックし、[入力規則] プロパティ ボックスをクリックします。

  4. 式を入力するか、プロパティ ボックスの [ビルド] ボタン イメージ をクリックし、式ビルダーを使用して式を作成します。

    注: 式の前に = 演算子を使用しないでください。

  5. ユーザーが入力規則と一致しないデータを入力した場合に表示されるテキストをカスタマイズするには、"エラー メッセージ" プロパティに、表示するテキストを入力します。

ページの先頭へ

テーブルのフィールドに既定値を設定する

式を使用して、テーブルのフィールドの既定値を指定することができます。Access では、他の値が指定されていない限り、新規テーブルにはこの値が使用されます。たとえば、新規レコードが追加されるたびに "受注日" というフィールドに自動的に日時が挿入されるようにしたいとします。そのためには、次の式を使用します。

Now()

テーブルのフィールドに既定値を指定する

  1. ナビゲーション ウィンドウで、変更するテーブルをダブルクリックします。

    テーブルがデータシート ビューに表示されます。

  2. 変更するフィールドを選びます。

  3. リボンで [フィールド] をクリックし、[プロパティ] で [既定値] をクリックします。

    [式ビルダー] ダイアログ ボックスが表示されます。

  4. ボックスに式を入力します。その際、式の先頭に等号 (=) を付けるようにしてください。

注: テーブルのフィールドにコントロールを関連付けたときに、コントロールとテーブルのフィールドの両方に既定値が設定されている場合は、コントロールの既定値がテーブルのフィールドの既定値よりも優先されます。

ページの先頭へ

コントロールに既定値を設定する

式は他に、コントロールの "既定値" プロパティで使用されるのが一般的です。コントロールの "既定値" プロパティは、テーブルのフィールドの "既定値" プロパティと似ています。たとえば、テキスト ボックスの既定値として現在の日付を使用するには、次の式を使用します。

Date()

この式では、Date 関数を使用して現在の日付を返しますが、時刻は返しません。テーブルのフィールドにテキスト ボックスを連結した場合、フィールドに既定値が設定されていると、コントロールの既定値がテーブルのフィールドよりも優先されます。多くの場合、テーブルのフィールドで "既定値" プロパティを設定する方が有効です。こうすることで、さまざまなフォームの複数のコントロールが同じテーブルのフィールドに基づいている場合、同じ既定値が各コントロールに適用され、各フォームに同じデータが入力されるようになります。

コントロールの既定値を入力する

  1. ナビゲーション ウィンドウで、変更するフォームまたはレポートを右クリックし、ショートカット メニューの [デザイン ビュー] または [レイアウト ビュー] をクリックします。

  2. 変更するコントロールを選びます。

  3. プロパティ シートが表示されていない場合は、F4 キーを押して表示します。

  4. プロパティ シートの [すべて] タブをクリックし、[既定値] プロパティ ボックスをクリックします。

  5. 式を入力するか、プロパティ ボックスの [ビルド] ボタン イメージ をクリックし、式ビルダーを使用して式を作成します。

ページの先頭へ

実行するマクロ アクションを制御する

特定の条件が True である場合にのみ、マクロの (一連の) アクションを実行したい場合があります。たとえば、テキスト ボックスの値が 10 以上の場合にのみマクロ アクションを実行したいとします。この規則を設定するには、マクロの [If] ブロックで式を使用して、マクロの条件を定義します。

この例では、テキスト ボックスの名前が "品目" であるとします。条件を設定する式は [品目]>=10 です。

マクロの [If] ブロックで使用される式

マクロの [If] ブロックに式を入力する

  1. ナビゲーション ウィンドウで、変更するマクロを右クリックし、ショートカット メニューの [デザイン ビュー] をクリックします。

  2. 変更する [If] ブロックをクリックするか、[アクション カタログ] ウィンドウから [If] ブロックを追加します。

  3. [If] ブロックの一番上の行をクリックします。

  4. ボックスに条件式を入力するか、式ボックスの横にある [ビルド] ボタン イメージ をクリックし、式ビルダーを起動します。

注: 入力した式はブール値、つまり True または False のいずれかでなければなりません。[If] ブロック内のマクロ アクションは、条件が True の場合にのみ実行されます。

ページの先頭へ

レポート内のデータのグループ化および並べ替えを行う

[グループ化、並べ替え、集計] ウィンドウを使用して、レポート内のデータのグループ化レベルや並べ替え順序を定義します。通常は、一覧から選んだフィールドでグループ化または並べ替えを行います。ただし、計算された値に基づいてグループ化または並べ替えを行う場合は、代わりに式を入力することができます。

グループ化は重複する値が含まれる列の結合処理です。たとえば、データベースに異なる都市のオフィスの売上情報が含まれ、そのデータベースのレポートの 1 つが "市町村別売上" という名前だとします。そのレポートにデータを提供するクエリは、データを市区町村の値によってグループ化します。このようなグループ化によって、情報が読みやすく、理解しやすくなります。

それに対し、並べ替えとは、クエリ結果の行 (レコード) に対して並べ替え順序を適用する処理です。たとえば、主キーの値 (または別のフィールドの別の値セット) によってレコードを昇順または降順で並べ替えたり、アルファベット順などの指定した順序で 1 つ以上の文字を基にレコードを並べ替えたりできます。

レポートにグループ化と並べ替えを追加する

  1. ナビゲーション ウィンドウで、変更するレポートを右クリックし、ショートカット メニューの [レイアウト ビュー] または [デザイン ビュー] をクリックします。

  2. リボンの [デザイン] をクリックし、[グループ化と集計] で [グループ化と並べ替え] をクリックします。

    [グループ化、並べ替え、集計] ウィンドウがレポートの下に表示されます。

  3. レポートにグループ化レベルを追加するには、[グループの追加] をクリックします。

  4. レポートに並べ替え順序を追加するには、[並べ替えの追加] をクリックします。

    新しいグループ レベルまたは並べ替え順序に加えて、レポートのデータを提供するフィールドの一覧がウィンドウに表示されます。次の図は、通常の新しいグループ レベル (カテゴリでのグループ化) と並べ替え順序 (製造元での並べ替え) に加えて、グループ化および並べ替えに使用できるフィールドが含まれる一覧も表示しています。

    [グループ化、並べ替え、集計] ウィンドウの式オプションの選択

  5. 使用できるフィールドの一覧で、[] をクリックして式ビルダーを起動します。

  6. 式ビルダーの式ボックス (上のボックス) に、使用する式を入力します。式は、必ず等号 (=) 演算子から始めます。

既存のグループ化または並べ替えに式を追加する

  1. ナビゲーション ウィンドウで、変更するレポートを右クリックし、ショートカット メニューの [レイアウト ビュー] または [デザイン ビュー] をクリックします。

  2. 変更するグループ レベルまたは並べ替え順序をクリックします。

  3. [グループ化] (グループ化レベルの場合) または [並べ替え] (並べ替え順序の場合) の横に表示される下矢印をクリックします。

    使用できるフィールドを含む一覧が表示されます。

  4. フィールドを含む一覧の一番下で、[] をクリックして式ビルダーを起動します。

  5. 式ビルダーの式ボックス (上のボックス) に、式を入力します。式は、必ず等号 (=) 演算子から始めます。

ページの先頭へ

注: 機械翻訳についての免責事項: この記事の翻訳はコンピューター システムによって行われており、人間の手は加えられていません。マイクロソフトでは、英語を話さないユーザーがマイクロソフトの製品、サービス、テクノロジに関するコンテンツを理解するのに役立てるため、こうした機械翻訳を提供しています。記事は機械翻訳されているため、用語、構文、文法などに誤りがある場合があります。

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×