式の概要

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

式は、数値演算、テキストの結合や抽出、データの検証など、Microsoft Office Access 2007 のさまざまな作業で使用できます。この記事では、式に関する基礎的な情報として、式を使用する状況、Microsoft Office Excel の数式との違い、および式の構成要素について説明します。

この記事の内容

式の概要

式を使用する理由

Access の式と Excel の数式の比較

式の構成要素

式の例

式の概要

式は、いくつかの要素の組み合わせです。式を構成する要素には、組み込みまたはユーザー定義の関数、識別子、演算子、および単一の値として評価される定数があります。

ヒント: Access 2010 では、式ビルダーは、式が必要とどのような引数を確認できるように、IntelliSense はします。

式の構成要素

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

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

この例ではSum ()は組み込み関数、 [購入価格]識別子*は、算術演算子、 0.08は定数です。アイテムのグループの消費税を計算するフッターをフォームまたはレポート フッターにテキスト ボックスで次の式を使用できます。

この例よりもさらに複雑な式や単純な式も作成できます。たとえば、次のBoolean式は演算子と定数のみで構成されます。

>0

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

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

注: 式の構成要素の詳細については、後の「式の構成要素」を参照してください。

ページの先頭へ

式を使用する理由

Access では、次の処理に式を使用できます。

  • データとして直接存在しない値を計算する場合。クエリ フィールド、フォーム上のコントロール、およびレポート上のコントロールの値を計算できます。

  • テーブル フィールド、フォーム上のコントロール、またはレポート上のコントロールに既定値を設定する場合。これらの既定値は、テーブル、フォーム、またはレポートを開いたときに表示されます。

  • 入力規則を作成する場合。入力規則は、ユーザーがフィールドやコントロールに入力できる値を制御します。

  • クエリの条件を設定する場合。

Access で最もよく式が使用されるのは、直接には存在しないデータを計算する場合です。たとえば、クエリで明細項目の合計を計算する列を作成し、その値をフォームやレポートで使用できます。このような計算によって得られるクエリの列を、演算フィールドと呼びます。たとえば、次に示すクエリ内の式では、割引を適用して明細項目の合計が計算されます。

明細金額 : CCur ( [受注明細]. [単価] * [数量] *(1-[Discount])/100) * 100

この式では、結果の列、つまり演算フィールドに "特別価格" という名前が付けられています。

自身の値を自動計算するテーブル フィールドは作成できません。必要であれば、別の場所 (クエリやフォームなど) で行われた計算の結果をテーブル フィールドに格納することはできます。ただし、特別な理由がない限り、計算の実行に必要な値のみを格納し、必要時に結果を計算する方が効率的です。

たとえば、請求書の明細項目の合計額を計算する必要があるとします。明細項目の合計額をデータベースに保存する代わりに、必要に応じてデータベースに格納されている他の 2 つの項目 (数量と単価) から合計額を計算します。請求書レポートのテキスト ボックス コントロールで、次の式を使用して値を計算します。

= CCur ( [Quantity]*[Price])

この式では、数量と単価を乗算し、その結果を通貨変換 (CCur) 関数で通貨型に変換します。注文ごとに割引額を計算することもできます。

演算フィールドは、複数のテーブル フィールドのデータで計算や演算を実行する必要がある場合に作成できます。たとえば、複数のテーブルで姓と名が別々のフィールドに格納されているとします。姓と名を組み合わせて 1 つのフィールドに表示する場合は、クエリで演算フィールドを作成します。既に説明したように、この種類の演算フィールドをテーブルに直接作成することは理にかなっているように思われますが、このような演算はテーブルではサポートされません。テーブルには、必要な式を追加するためのフィールドやプロパティがありません。

計算フィールド名と姓を結合する次のようになります: [FirstName] &""& [LastName]します。この例では、アンパサンド (&) は、フィールド、スペース文字 (スペースを引用符で囲まれた、)、および[氏名]フィールドの値の値を結合します。

Access でのテーブルのフィールドまたはコントロールの既定値を指定するのに式を使用することもできます。たとえば、日付フィールドの既定値を設定するには、現在の日付を入力日付 ()そのフィールドの既定値] プロパティ ボックスにします。

さらに、式を使用すると、入力規則を設定します。たとえば、コントロールの入力規則を使用するまたは、日付を入力するよう要求するテーブルのフィールドには、現在の日付以上します。プロパティの入力規則] ボックスに値を設定する場合は、 > = 日付 ()します。

さらに、式を使用してクエリの条件を設定できます。たとえば、一定の期間に出荷された注文の商品売上を確認するとします。日付範囲を定義する条件を入力すると、その条件に一致する行のみが返されます。たとえば、次のような式を作成します。

1/1/2007 間 #12/31/2007

クエリに条件を追加して実行すると、指定した日付と一致する値のみが返されます。

ページの先頭へ

Access の式と Excel の数式の比較

Access の式と Excel の数式は、同様の要素を使用して結果を生成する点で似ています。Excel の数式と Access の式は、どちらも次の要素を 1 つ以上含んでいます。

  • 識別子   Excel では、個々 のセルの名前またはA1B3:C6Sheet2など、ブック内のセルの範囲の識別子がされます。C32します。Access の識別子は、テーブルのフィールドの名前 ( [連絡先]など! [名])、フォームまたはレポート上のコントロール (フォームなどです [。タスク リスト] です。[説明])、またはこれらのフィールドまたはコントロールのプロパティ (フォームなどです [。タスク リスト] です。[説明].列幅)。

  • 演算子    Access でも Excel でも、値を比較する場合やデータで単純な計算を実行する場合に演算子が使用されます。例として、+ (加算) や - (減算) があります。

  • 関数と引数    Access でも Excel でも、演算子だけでは実行できない処理のために関数と引数が使用されます。たとえば、フィールド内の値の平均を求めたり、計算結果を通貨書式に変換したりできます。関数の例として、SUMSTDEV などがあります。引数は、関数に渡す情報となる値です。Access と Excel には多数の関数が用意されていますが、類似する関数の名前が異なる場合があります。たとえば、Excel の AVERAGE 関数は Access の AVG 関数に相当します。

  • 定数    Access でも Excel でも、定数は変化しない値です。たとえば、式で計算されないテキスト文字列や数字があります。

Access の式では、Excel の数式と同様の演算子と定数が使用されますが、識別子と関数は異なります。Excel の数式は 1 か所 (つまりワークシートのセル) でしか使用できませんが、Access の式は、多くの場所で、次のようなさまざまな作業に使用できます。

  • フォームやレポートに演算コントロールを作成する

  • クエリに演算フィールドを作成する

  • クエリの条件として使用する

  • フィールド、またはフォーム上のコントロールに入力されるデータを検証する

  • レポートでデータをグループ化する

Access の式でも Excel の数式でも、数値演算子を使用して数値や日付/時刻値を計算できます。たとえば、顧客に提示する割引価格を計算するには、Excel の数式「=C2*(1-D2)」または Access の式「= [単価]*(1-[割引率])」を使用できます。

また、Access の式および Excel の数式では、文字列演算子を使用して文字列の連結や分割などの操作を行うことができます。たとえば、姓と名を連結して 1 つの文字列にするには、Excel の数式「=D3 & " " & D4」または Access の式「= [姓] & " " & [名]」を使用できます。

ページの先頭へ

式の構成要素

式を構成する要素には、識別子、演算子、関数と引数、定数、および値があります。以降のセクションでは、各構成要素についてさらに詳しく説明します。また、各セクションの例で式の構文を簡単に説明します。

識別子

識別子は、フィールド、プロパティ、またはコントロールの名前です。フィールド、プロパティ、またはコントロールに関連付けられている値を参照するには、式で識別子を使用します。たとえば、式= [RequiredDate]-[出荷]します。この式は、 [出荷日]フィールドまたは締切日]フィールドまたはコントロールの値からコントロールの値を減算します。この式でRequiredDateshippeddate という名前の両方が、識別子として使用します。

演算子

Access では、+-* (乗算)、/ (除算) などの一般的な算術演算子を始めとするさまざまな演算子がサポートされています。また、< (より小) や > (より大) などの比較演算子を使用した値の比較、&+ などの文字列演算子を使用した文字列の連結、NotAnd などの論理演算子を使用した真偽値の判定が可能であるほか、Access 固有のその他の演算子も使用できます。

関数と引数

関数は、式で使用できる組み込みのプロシージャです。関数は、値の計算、テキストや日付の操作、データの集計などのさまざまな操作に使用します。たとえば、よく使用される関数の 1 つに、現在の日付を返す Date 関数があります。Date 関数にはさまざまな用途があり、たとえば、テーブルのフィールドに既定値を設定する式で使用できます。この場合、ユーザーが新しいレコードを追加するたびに、既定でフィールドの値が現在の日付に設定されます。

一部の関数には引数が必要です。引数は、関数への入力となる値です。複数の引数を必要とする関数では、引数をコンマで区切って指定します。たとえば、Date 関数を使用する次の式を見てください。

= 形式 ( Date()、" d、 yyyy mmmm ")

この例では、2 つの引数を使用します。最初の引数が、日付 ()関数は、現在の日付を返します。Format関数に返される日付の値の書式を設定する方法を指示する文字列をカンマで最初の引数から分離されている 2 番目の引数 ("mmmm d、yyyy") に指定します。テキスト文字列を引用符で囲む必要があることに注意してください。この式では、別の関数には、引数として、1 つの関数で返される値を使用することが多くの場合についても説明します。この例では、日付 ()を引数として機能します。

関数と式の構文の詳細については、[参照] セクションのリンク先を参照してください。

定数

定数とは、Access の実行中に値が変化しない項目です。TrueFalseNull の各定数は、式で頻繁に使用されます。VBA コードで独自の定数を定義し、VBA プロシージャで使用することもできます。VBA は、Access で使用されるプログラミング言語です。

注: VBA の定数を、式で使用するユーザー定義関数で使用することはできません。たとえば、VBA には、vbSunday (日曜日) や vbMonday (月曜日) などの曜日を表す定数があります。それぞれの定数には数値が対応付けられています。たとえば、vbSunday の数値は 1、vbMonday の数値は 2 です。これらの定数を、式から呼び出されるユーザー定義関数で使用することはできません。代わりに、数値を使用する必要があります。

式では、数値 1,254 や文字列 "1 から 10 までの値を入力" などのリテラル値を使用できます。必要に応じて、符号や小数点を含んだ一連の桁を表す数値も使用できます。符号がない場合は正の値と見なされます。負の値を指定する場合は、負符号 (-) を付加します。また、指数表現を使用することも可能です。その場合は、E または e と、指数符号を付加します (1.0E-6 など)。

テキスト文字列を定数として使用する場合は、Access で正しく解釈されるように、対象の文字列を引用符で囲みます。引用符が自動的に付加される場合もあります。たとえば、入力規則やクエリ条件の式にテキストを入力すると、そのテキストが自動的に引用符で囲まれます。

たとえば、「東京都」と入力すると、式の中では自動的に "東京都" と表示されます。式の結果として、実際に引用符で囲まれた文字列を生成するには、二重引用符で囲まれた文字列をさらに単一引用符 (') で囲むか、または二重引用符 (") で 3 回囲みます。たとえば、次の 2 つの式は同じ内容です。

フォーム ![ 連絡先]。[市区町村]. 既定値 =「東京」

フォーム ![ 連絡先]。[市区町村]. 既定値 = " " "Paris" " "

日付/時刻値を使用する場合は、値を番号記号 (#) で囲みます。たとえば、#7-3-07#、#7-Mar-07#、#Mar-7-2007#、#2007/03/07# は、いずれも有効な日付/時刻値です。Access では、# 文字で囲まれた有効な日付/時刻値が検出されると、自動的にその値が日付/時刻型として処理されます。

ページの先頭へ

式の例

Access の式の例とその一般的な用途を次の表に示します。

目的

=[締切日]-[出荷日]

レポート上の 2 つのテキスト ボックス コントロール ([締切日] と [出荷日]) の日付値の差を計算します。

Date()

日付/時刻型のテーブル フィールドの既定値を、現在の日付に設定します。

特別価格: CCur([受注明細].[単価]*[数量]*(1-[割引率])/100)*100

クエリで "特別価格" という名前の演算フィールドを作成します。

Between #1/1/2007# And #12/31/2007#

クエリで日付/時刻型フィールドに対する条件を指定します。

=[受注サブフォーム].Form!受注小計

[受注] フォーム上にある [受注サブフォーム] の [受注小計] コントロールの値を返します。

>0

テーブルの数値フィールドに入力規則を設定します。この場合、ユーザーはゼロを超える値を入力する必要があります。

式によって、等号 (=) 演算子で始まっている場合とそうでない場合があります。フォームまたはレポートでコントロールの値を計算する場合は、式の先頭に = 演算子を指定します。それ以外の場合 (クエリで式を入力する場合や、フィールドまたはコントロールの "DefaultValue/既定値" プロパティや "ValidationRule/入力規則" プロパティに式を入力する場合など) は、テーブルのテキスト フィールドに式を追加するのでない限り、= 演算子は使用しません。クエリに式を追加するときなど、場合によっては = 演算子が自動的に削除されます。

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

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

ありがとうございます。その他のフィードバックはありませんか?

改善内容をお聞かせください

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

×