式の例

この記事では、Access の式の例を示します。式とは、算術演算子または論理演算子、定数、関数、テーブルのフィールド、コントロール、プロパティを組み合わせたもので、単一の値に評価されます。Access で式を使用すると、値を計算したり、データを検証したり、フィールドまたはコントロールに既定値を設定したりできます。

注: この記事では、式を作成するための基本的な手順について説明しますが、Access に用意されている式の作成用ツールの使い方について詳細に解説するものではありません。式を作成する詳細については、「Build an expression」 (式を作成する) の記事を参照してください。

この記事の内容

式について

フォームやレポートで使用する式の例

クエリやフィルターで使用する式の例

既定値の式の例

フィールドの入力規則の式の例

マクロ条件式の例

式について

Access では、という用語と数式という用語は同意語です。式は、使用可能な複数の要素から構成され、単独で、または組み合わせて使用して、結果を得ることができます。これらの要素は、次のとおりです。

  • テーブルのフィールド名、フォームまたはレポートのコントロール名、フィールドまたはコントロールのプロパティなどの識別子

  • + (加算) や - (減算) などの演算子

  • SUMAVG などの関数

  • テキスト文字列や、式によって計算されるものではない数値などの定数 (変更されない値)

式はさまざまな形で使用できます。たとえば、計算を実行したり、コントロールの値を取得したり、クエリの条件を設定したり、単に名前を付けたりすすることができます。

式の使用方法や使用場所の詳細については、「Build an expression」 (式を作成する) の記事を参照してください。

ページの先頭へ

フォームやレポートで使用する式の例

このセクションに掲載された表は、フォームまたはレポートに配置されたコントロールの値を計算する式の例を示しています。演算コントロールを作成するには、コントロールの ControlSource/コントロールソース プロパティに、テーブルのフィールド名やクエリを入力するのではなく式を入力します。

次の手順では、既存のフォームまたはレポート上のテキスト ボックス コントロールに式を入力する方法について説明します。

演算コントロールを作成する

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

  2. フォームまたはレポートで、変更するテキスト ボックス コントロール (テキスト ボックスに関連付けられたラベルではなく) を右クリックし、ショートカット メニューの [プロパティ] をクリックします。

  3. 必要に応じて、[すべて] タブまたは [データ] タブのどちらかをクリックします。これらのタブでは、[コントロール ソース] プロパティを設定できます。

  4. [コントロール ソース] プロパティの横にあるボックスをクリックし、式を入力します。たとえば、次のセクションに含まれている表の [式] 列から、式をコピーして貼り付けることができます。

  5. プロパティ シートを閉じます。

テキストを結合または操作する式

次の表に示す式では、& (アンパサンド) 演算子や + (加算) 演算子を使用してテキスト文字列を結合したり、組み込み関数を使用してテキスト文字列を操作したり、テキストを処理して演算コントロールを作成したりしています。

結果

="N/A"

"N/A" と表示します。

=[名] & " " & [姓]

[姓] および [名] というテーブル フィールドの値を表示します。この例では、& 演算子を使用して、[姓] フィールド、スペース (二重引用符の中)、および [名] フィールドを結合しています。

=Left([商品名], 1)

Left 関数を使用して、[商品名] というフィールドまたはコントロールに入力されている値の最初の文字を表示します。

=Right([備品番号], 2)

Right 関数を使用して、[備品番号] というフィールドまたはコントロールに入力されている値の最初の 2 文字を表示します。

=Trim([住所])

Trim 関数を使用して、[住所] コントロールの値から先頭や末尾の空白を削除して表示します。

=IIf(IsNull([都道府県]), [郵便番号] & " " & [住所], [郵便番号] & " " & [都道府県] & " " & [住所])

IIf 関数を使用して、[都道府県] コントロールの値が null の場合は [郵便番号] コントロールと [住所] コントロールの値をスペースで区切って表示し、その他の場合は [郵便番号] コントロール、[都道府県] コントロール、および [住所] コントロールの値をスペースで区切って表示します。

=[郵便番号] & (" " + [都道府県]) & " " & [住所]

+ 演算子と null 値の反映を使用して、[都道府県] フィールドまたはコントロールの値が null の場合は [郵便番号] コントロールと [住所] コントロールの値をスペースで区切って表示し、その他の場合は [郵便番号]、[都道府県]、[住所] の各フィールドまたはコントロールの値をスペースで区切って表示します。

null 値の反映とは、式のいずれかの構成要素が null の場合に、式全体を null として評価する機能です。+ 演算子では null 値の反映がサポートされていますが、& 演算子ではサポートされていません。

ヘッダーおよびフッターにおける式

フォームやレポートのページ番号を表示または印刷するには、Page プロパティと Pages プロパティを使用します。Page プロパティおよび Pages プロパティは、印刷中または印刷プレビューの実行中にのみ有効になるので、フォームやレポートのプロパティ シートには表示されません。通常、これらのプロパティを使用するときは、フォームやレポートのヘッダー セクションまたはフッター セクションにテキスト ボックスを配置し、以下の表に示すような式を設定します。

フォームやレポートでヘッダーおよびフッターを使用する方法の詳細については、「フォームまたはレポートにページ番号を挿入する」の記事を参照してください。

結果の例

=[Page]

1

="ページ" & [Page]

ページ 1

="ページ" & [Page] & " of " & [Pages]

ページ 1 of 3

=[Page] & " of " & [Pages] & " ページ"

1 of 3 ページ

=[Page] & "/" & [Pages] & " ページ"

1/3 ページ

=[国/地域] & " - " & [Page]

イギリス - 1

=Format([Page], "000")

001

="印刷日: " & Date()

印刷日: 12/31/07

算術演算を実行する式

式を使用して、2 つ以上のフィールドまたはコントロールの値の加算、減算、乗算、および除算を行うことができます。式を使用すると、日付に対して算術演算を実行することもできます。たとえば、[締切日] という名前の日付/時刻型のテーブル フィールドがあるとします。このとき、フィールドまたはフィールドに連結されたコントロールに =[締切日] - 2 という式を設定すると、[締切日] フィールドの現在の値の 2 日前に相当する日付/時刻型の値が返されます。

結果

=[小計]+[運送料]

[小計] および [運送料] というフィールドまたはコントロールの値の合計。

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

[締切日] および [出荷日] というフィールドまたはコントロールの日付値の間隔。

=[価格]*1.06

[単価] フィールドまたはコントロールの値と 1.06 の積 ([単価] の値の 6% 増し)。

= [数量]*[価格]

[数量] および [単価] というフィールドまたはコントロールの値の積。

=[四半期売上高]/[社員数]

[四半期売上高] および [社員数] というフィールドまたはコントロールの値の商。

注: 式に算術演算子 (+-*、および /) を使用し、式内のコントロールのいずれかの値が null 値である場合、式全体の結果は null になります。これを null 値の反映と呼びます。式で使用するコントロールの 1 つのレコードに null 値が含まれる可能性がある場合は、Nz 関数を使用して null 値を 0 に変換することにより、null 値の反映を避けることができます。例: =Nz([Subtotal])+Nz([Freight])

関数の詳細については、「Nz 関数」の記事を参照してください。

他のフィールドまたはコントロールの値を参照する式

場合によっては、別のフォームやレポートに含まれているフィールドまたはコントロールなど、他の場所に存在する値が必要になることがあります。式を使用して、他のフィールドまたはコントロールから値を返すことができます。

次の表は、フォームの演算コントロールで使用できる式の例の一覧です。

結果

=Forms![受注]![受注コード]

[受注] フォームの [受注コード] コントロールの値。

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

[受注] フォームにある [受注サブフォーム] という名前のサブフォーム上の [受注小計] コントロールの値。

=Forms![受注]![受注サブフォーム]![商品コード].Column(2)

[受注] フォームにある [受注サブフォーム] という名前のサブフォーム上の [商品コード] という複数列リスト ボックスの 3 列目の値 (0 は 1 列目、1 は 2 列目、以下同様)。

=Forms![受注]![受注サブフォーム]![単価]*1.06

[受注] フォームにある [受注サブフォーム] という名前のサブフォーム上の [単価] コントロールの値と 1.06 の積 ([単価] コントロールの値の 6% 増し)。

=Parent![受注コード]

カレント サブフォームのメインまたは親フォームの [受注コード] コントロールの値

次の表では、レポート上の演算コントロールを使用する方法を示しています。これらの式では、Report プロパティが参照されています。

このプロパティの詳細については、「Report プロパティ」の記事を参照してください。

結果

=Report![納品書]![受注コード]

[納品書] というレポートにある [受注コード] というコントロールの値。

=Report![合計]![年次売上高サブレポート]![売上高]

[合計] レポートにある [年次売上高サブレポート] という名前のサブレポート上の [売上高] コントロールの値。

=Parent![受注コード]

カレント サブレポートのメインまたは親レポートの [受注コード] コントロールの値。

値の合計、カウント、平均を求める式

集計関数と呼ばれる種類の関数を使用すると、1 つ以上のフィールドまたはコントロールの値を計算できます。たとえば、レポートのグループ フッターに表示するグループの集計や、フォーム上の品目に対する受注小計を計算することができます。1 つまたは複数のフィールド内の項目数を数えたり、平均値を求めたりすることもできます。

次の表の式は、AvgCountSum などの関数を使用する方法を示しています。

説明

=Avg([運送料])

Avg 関数を使用して、"運送料" という名前のテーブル フィールドまたはコントロールの値の平均値を表示します。

=Count([受注コード])

Count 関数を使用して、[受注コード] コントロールのレコードの数を表示します。

=Sum([売上高])

Sum 関数を使用して、[売上高] コントロールの値の合計を表示します。

=Sum([数量]*[単価])

Sum 関数を使用して、[数量] コントロールと [単価] コントロールの値の積の合計を表示します。

=[売上高]/Sum([売上高])*100

[売上高] コントロールの値を [売上高] コントロールのすべての値の合計で割って得られる売上高の割合をパーセント単位で表示します。

注: コントロールの Format/書式プロパティを Percent/パーセントに設定した場合は、式に *100 を含めないでください。

集計関数の使用方法およびフィールドや列の値の集計方法の詳細については、「Sum data by using a query (クエリを使用してデータを集計する)」、「クエリを使用してデータをカウントする」、「データシート内の行数をカウントする」、および「Display column totals in a datasheet (データシートに列の合計を表示する)」の記事を参照してください。

定義域集計関数を使用して選択的に値をカウント、合計、参照する式

値を選択して合計またはカウントする必要がある場合は、定義域集計関数と呼ばれる種類の関数を使用します。"定義域" は、1 つ以上のテーブル内の 1 つ以上のフィールド、あるいは 1 つ以上のフォームまたはレポート上の 1 つ以上のコントロールで構成されます。たとえば、テーブル フィールドの値をフォーム上のコントロールの値と比較することができます。

説明

=DLookup("[担当者名]", "[仕入先]", "[仕入先コード] = " & Forms("仕入先")("[仕入先コード]"))

DLookup 関数を使用して、[仕入先] テーブルのレコードのうち、[仕入先コード] の値が [仕入先] フォームの [仕入先コード] コントロールの値に一致するレコードの [担当者名] フィールドの値を返します。

=DLookup("[担当者名]", "[仕入先]", "[仕入先コード] = " & Forms![新しい仕入先]![仕入先コード])

DLookup 関数を使用して、[仕入先] テーブルのうち、[仕入先コード] の値が [新しい仕入先] フォームの [仕入先コード] コントロールの値に一致するレコードの [担当者名] フィールドの値を返します。

=DSum("[受注金額]", "[受注]", "[得意先コード] = 'RATTC'")

DSum 関数を使用して、[受注] テーブルの [得意先コード] が "RATTC" であるレコードの [受注金額] フィールドの値の合計を返します。

=DCount("[退職]","[資産]","[退職]=Yes")

DCount 関数を使用して、[資産] テーブルの [退職] フィールド (Yes/No 型のフィールド) に設定されている Yes 値の数を返します。

日付を操作および計算する式

日付と時刻の管理は、データベースの基本的な機能です。たとえば、納品日からの経過日数を計算して、売掛金の滞留日数を求めることができます。次の表に示すように、日付と時刻はさまざまな形式で表すことができます。

説明

=Date()

Date 関数を使用して、現在の日付を mm-dd-yy の形式で表示します。mm は月 (1 ~ 12)、dd は日 (1 ~ 31)、yy は年 (1980 ~ 2099) の下 2 桁を示します。

=Format(Now(), "ww")

Format 関数を使用して、年の初めから数えた現在の日付の週番号を表示します。ww は週 (1 ~ 53) を示します。

=DatePart("yyyy", [受注日])

DatePart 関数を使用して、[受注日] コントロールの値の年の部分を 4 桁で表示します。

=DateAdd("y", -10, [契約日])

DateAdd 関数を使用して、[契約日] コントロールの値の 10 日前の日付を表示します。

=DateDiff("d", [受注日], [出荷日])

DateDiff 関数を使用して、[受注日] コントロールおよび [出荷日] コントロールの値の差の日数を表示します。

=[納品日] + 30

日付に対して算術演算子を使用して、[納品日] フィールドまたはコントロールの日付の 30 日後の日付を計算します。

2 つの値の一方を返す条件式

次の表に示す式では、IIf 関数を使用して 2 つの値の一方を返します。IIf 関数には、3 つの引数を渡します。最初の引数には、True または False のどちらかの値を返す式を指定します。2 番目の引数は式が True の場合に返す値、3 番目の引数は式が False の場合に返す値です。

説明

=IIf([確認] = "Yes", "受注は確認されました。", "受注は確認できません。")

IIf (Immediate If) 関数を使用して、[確認] コントロールの値が Yes の場合は "受注は確認されました。"、そうでない場合は "受注は確認できません。" というメッセージを表示します。

=IIf(IsNull([都道府県]), " ", [都道府県])

IIf 関数と IsNull 関数を使用して、[都道府県] コントロールの値が null の場合は空白を、その他の場合は [都道府県] コントロールの値を表示します。

=IIf(IsNull([都道府県]), [郵便番号] & " " & [住所], [郵便番号] & " " & [都道府県] & " " & [住所])

IIf 関数と IsNull 関数を使用して、[都道府県] コントロールの値が null の場合は [郵便番号] コントロールおよび [住所] コントロールの値を表示し、その他の場合は [郵便番号]、[都道府県]、[住所] の各フィールドまたはコントロールの値を表示します。

=IIf(IsNull([締切日]) Or IsNull([出荷日]), "欠落している日がないか確認", [締切日] - [出荷日])

IIf 関数と IsNull 関数を使用して、[締切日] から [出荷日] を減算した結果が null の場合は "欠落している日がないか確認" というメッセージを表示し、その他の場合は [締切日] コントロールと [出荷日] コントロールの日付値の差の日数を表示します。

ページの先頭へ

クエリやフィルターで使用する式の例

このセクションでは、クエリでの演算フィールドの作成や、クエリの抽出条件の指定のために使用できる式の例を紹介します。演算フィールドとは、式の結果から作成されるクエリの列のことです。たとえば、値を計算したり、姓や名などの文字列値を結合したり、日付の一部を取り出したりできます。

操作するレコードを制限するには、クエリで条件を使用します。たとえば、Between 演算子を使用すると、開始日と終了日を設定し、その期間に出荷された受注品だけが返されるようにクエリの結果を制限できます。

以下のセクションでは、クエリに演算フィールドを追加する方法について説明し、クエリでの式の使用例を示します。

クエリのデザイン ビューで演算フィールドを追加する

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

  2. 集計フィールドを作成する列の [フィールド] セルをクリックします。フィールドの名前を入力し、続けてコロンを入力するか、または式を入力できます。名前を入力しない場合は、Access では、n: という名前が付けられます。n は連番になります。

  3. 式を入力します。

    - または -

    [デザイン] タブの [クエリ設定] で、[ビルダー] をクリックして、[式ビルダー] を起動します。

    [式ビルダー] の使い方の詳細については、「Build an expression」 (式を作成する) の記事を参照してください。

クエリやフィルターで文字列を操作する式

次の表に示す式では、& 演算子や + 演算子を使用してテキスト文字列を結合したり、組み込み関数を使用してテキスト文字列を操作するなど、文字列を処理することによって演算フィールドを作成します。

説明

氏名: [姓] & " " & [名]

[姓] フィールドと [名] フィールドの値をスペースで区切って表示する [氏名] というフィールドを作成します。

住所 2: [郵便番号] & " " & [都道府県] & " " & [住所]

[郵便番号]、[都道府県]、[住所] の各フィールドの値をスペースで区切って表示する [住所 2] というフィールドを作成します。

商品頭文字: Left([商品名], 1)

[商品頭文字] というフィールドを作成し、Left 関数を使用して、[商品名] フィールド値の先頭の文字を [商品頭文字] フィールドに表示します。

種類コード: Right([備品番号], 2)

[種類コード] というフィールドを作成し、Right 関数を使用して、[備品番号] フィールドの値の最後の 2 文字を表示します。

市外局番:Mid([電話番号],2,3)

[市外局番] というフィールドを作成し、Mid 関数を使用して、[電話番号] フィールドの値の 2 文字目から始まる 3 文字を表示します。

演算フィールドで算術演算を実行する式

式を使用して、2 つ以上のフィールドまたはコントロールの値の加算、減算、乗算、および除算を行うことができます。日付に対して算術演算を実行することもできます。たとえば、[締切日] という日付/時刻型フィールドがあるとします。このとき、=[締切日] - 2 という式を指定すると、[締切日] フィールドの値の 2 日前に相当する日付/時刻型の値が返されます。

説明

特別運送料: [運送料] * 1.1

[特別運送料] というフィールドを作成し、運送料の 10% 増しの料金をフィールドに表示します。

受注金額: [数量] * [単価]

[受注金額] というフィールドを作成し、[数量] フィールドと [単価] フィールドの値の積を表示します。

リード タイム: [締切日] - [出荷日]

[リード タイム] というフィールドを作成し、[締切日] フィールドと [出荷日] フィールドの値の差を表示します。

在庫合計: [在庫数]+[受注数]

[在庫合計] というフィールドを作成し、[在庫数] フィールドと [受注数] フィールドの値の合計を表示します。

運送料率:Sum([運送料])/Sum([小計]) *100

[運送料率] というフィールドを作成し、各小計における運送料の割合をパーセント単位で表示します。この式では、Sum 関数を使用して [運送料] フィールドの値を合計し、その合計値を [小計] フィールドの合計値で割っています。

この式を使用するには、デザイン グリッドの [集計] 行を使用して、このフィールドに対する [集計] セルを [演算] に設定する必要があるため、選択クエリから集計クエリへの変換が必要になります。

集計クエリの作成方法の詳細については、「Sum data by using a query (クエリを使用してデータを集計する)」の記事を参照してください。

フィールドの Format/書式プロパティを Percent/パーセントに設定した場合は、*100 を含めないでください。

集計関数の使用方法およびフィールドや列の値の集計方法の詳細については、「Sum data by using a query (クエリを使用してデータを集計する)」、「クエリを使用してデータをカウントする」、「データシート内の行数をカウントする」、および「Display column totals in a datasheet (データシートに列の合計を表示する)」の記事を参照してください。

演算フィールドで日付の操作および計算を実行する式

ほとんどのデータベースには、日付と時刻が格納されて管理されています。Access で日付と時刻を操作するには、テーブル内の日付と時刻のフィールドを日付/時刻型に設定します。Access では、日付に対して算術演算を実行できます。たとえば、納品日からの経過日数を計算して、売掛金の滞留日数を求めることができます。

説明

[ラグ タイム]:DateDiff("d", [受注日], [出荷日])

[ラグ タイム] というフィールドを作成し、DateDiff 関数を使用して、受注日から出荷日までの日数を表示します。

採用年:DatePart("yyyy",[採用日])

[採用年] というフィールドを作成し、DatePart 関数を使用して、各社員が採用された年を表示します。

30 日前:Date( )- 30

[30 日前] というフィールドを作成し、Date 関数を使用して、現在の日付の 30 日前の日付を表示します。

SQL 集計関数または定義域集計関数を使用して値のカウント、合計、平均を求める式

次の表に示す式では、データを集計する SQL (構造化照会言語) 関数を使用しています。このような関数 (SumCountAvg など) は、集計関数と呼ばれることがよくあります。

Access には、集計関数の他に、値を選択して合計またはカウントするための "定義域" 集計関数も用意されています。たとえば、特定の範囲に含まれる値だけをカウントしたり、他のテーブルに格納されている値を参照したりできます。定義域集計関数には、DSum 関数DCount 関数、および DAvg 関数があります。

合計を計算するには、集計クエリの作成が必要になることがよくあります。たとえば、グループごとの集計を求めるには、集計クエリを使用する必要があります。クエリのデザイン グリッドで集計クエリを有効にするには、[表示] メニューの [集計] をクリックします。

説明

行数:Count(*)

[行数] というフィールドを作成し、Count 関数を使用して、クエリ内の行数をカウントします。null 値 (空) のフィールドを持つレコードも含まれます。

運送料率:Sum([運送料])/Sum([小計]) *100

[運送料率] というフィールドを作成し、[運送料] フィールドの値の合計を [小計] フィールドの値の合計で割ることによって、各小計における運送料の割合をパーセント値として求めます (この例では、Sum 関数を使用しています)。

注: この式は集計クエリで使用する必要があります。フィールドの Format/書式プロパティを Percent/パーセントに設定した場合は、*100 を含めないでください。

集計クエリの作成方法の詳細については、「Sum data by using a query (クエリを使用してデータを集計する)」の記事を参照してください。

平均運送料:DAvg("[運送料]", "[受注]")

[平均運送料] というフィールドを作成し、DAvg 関数を使用して、集計クエリで結合されたすべての受注に対する運送料の平均を計算します。

情報が欠落しているフィールド (null 値のフィールド) を操作する式

ここで紹介する式では、null 値 (未知または未定義の値) を含むフィールドなど、情報が欠落している可能性のあるフィールドを取り扱います。新商品の価格が決まっていない場合や、同僚が受注データに値を追加し忘れた場合など、フィールドに null 値が含まれる状況はよくあります。null 値を検出して適切に処理することは、データベースの重要な機能の 1 つであると言えます。次の表の式では、null 値を扱う一般的な方法をいくつか示します。

説明

現在の都道府県:IIf(IsNull([都道府県]), " ", [都道府県])

[現在の都道府県] というフィールドを作成し、IIf 関数と IsNull 関数を使用して、[都道府県] フィールドに null 値が含まれている場合は作成したフィールドに空白を表示し、その他の場合は [都道府県] フィールドの内容を表示します。

リードタイム: IIf(IsNull([締切日] - [出荷日]), "欠落している日がないか確認", [締切日] - [出荷日])

[リードタイム] というフィールドを作成し、IIf 関数と IsNull 関数を使用して、[締切日] フィールドまたは [出荷日] フィールドの値が null の場合は "欠落している日がないか確認" というメッセージを表示し、その他の場合は日付の差を表示します。

半期売上高: Nz([第 1 四半期売上高]) + Nz([第 2 四半期売上高])

[半期売上高] という名前のフィールドを作成し、Nz 関数を使用して null 値を 0 に変換しながら、[第 1 四半期売上高] フィールドと [第 2 四半期売上高] フィールドの合計を表示します。

サブクエリを使用して演算フィールドを作成する式

サブクエリとも呼ばれるネストされたクエリを使用して、演算フィールドを作成することもできます。次の表に示す式は、サブクエリから作成される演算フィールドの一例です。

説明

区分: (SELECT [区分名] FROM [商品区分] WHERE [商品].[区分コード]=[商品区分].[区分コード])

[区分] という名前のフィールドを作成し、[商品区分] テーブルの [区分コード] が [商品] テーブルの [区分コード] と一致する商品区分の [区分名] を表示します。

抽出条件を定義して結果セットのレコードを制限する式

式を使用して、クエリに抽出条件を定義できます。これにより、抽出条件に一致する行だけが Access から返されるようになります。このセクションでは、クエリに抽出条件を追加する基本的な手順を説明し、文字列値や日付値に一致する抽出条件の例を示します。

クエリに抽出条件を追加する

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

  2. デザイン グリッドの [抽出条件] 行で、使用する列のセルをクリックし、抽出条件を入力します。

    式の入力領域を広げるには、Shift キーを押しながら F2 キーを押して、[ズーム] ボックスを表示します。

    - または -

    [デザイン] タブの [クエリ設定] で、[ビルダー] ボタンの画像 をクリックして [式ビルダー] を起動し、式を作成します。

注: 抽出条件を定義する式の作成時は、式の先頭に = 演算子を付けないでください。

[式ビルダー] の使い方の詳細については、「Build an expression」 (式を作成する) の記事を参照してください。

文字列値の全体または一部に一致する式

次の表の式は、文字列値の全体または一部に一致する条件の例を示しています。

フィールド

説明

出荷先市町村

"札幌市"

札幌市に出荷される受注品を表示します。

出荷先市町村

"札幌市" Or "福岡市"

Or 演算子を使用して、札幌市または福岡市に出荷される受注品を表示します。

出荷先都道府県

In("佐賀県", "愛知県")

In 演算子を使用して、佐賀県または愛知県に出荷される受注品を表示します。

出荷先都道府県

Not "埼玉県"

Not 演算子を使用して、埼玉県以外の都道府県に出荷される受注品を表示します。

商品名

Not Like "シ*"

Not 演算子と * ワイルドカード文字を使用して、商品名が "シ" 以外の文字で始まる商品を表示します。

会社名

> ="ナ"

社名が "ナ" 行から "ワ" 行で始まる会社に出荷される受注品を表示します。

商品コード

Right([商品コード], 2)="99"

Right 関数を使用して、[商品コード] の値が 99 で終わる受注品を表示します。

出荷先名

Like "山*"

社名が "山" から始まる会社に出荷される受注品を表示します。

一致条件として日付を使用する式

次の表の式は、条件式で日付や日付関連の関数を使用する例を示しています。

日付値の入力方法および使用方法の詳細については、「Enter a date or time value (日付値や時刻値を入力する)」の記事を参照してください。これらの式の例で使われている関数の使用方法の詳細については、各関数のトピックへのリンクをクリックしてください。

フィールド

説明

出荷日

#2007/2/2#

2007 年 2 月 2 日に出荷された受注品を表示します。

出荷日

Date()

今日出荷された受注品を表示します。

締切日

Between Date( ) And DateAdd("m", 3, Date( ))

Between...And 演算子、DateAdd 関数と Date 関数を使用して、現在の日付から 3 か月以内に出荷する必要のある受注品を表示します。

受注日

< Date( ) - 30

Date 関数を使用して、受注日が 30 日前より以前の受注品を表示します。

受注日

Year([受注日])=2007

Year 関数を使用して、受注日の年が 2007 年である受注品を表示します。

受注日

DatePart("q", [受注日])=4

DatePart 関数を使用して、受注日が第 4 四半期に該当する受注品を表示します。

受注日

DateSerial(Year ([受注日]), Month([受注日])+1, 1)-1

DateSerial 関数、Year 関数、Month 関数を使用して、受注日が各月の月末に該当する受注品を表示します。

受注日

Year([受注日])= Year(Now()) And Month([受注日])= Month(Now())

Year 関数、Month 関数、And 演算子を使用して、今年の今月分の受注品を表示します。

出荷日

Between #2007/1/5# And #2007/1/10#

Between...And 演算子を使用して、2007 年 1 月 5 日から 2007 年 1 月 10 日までの間に出荷された受注品を表示します。

締切日

Between Date( ) And DateAdd("M", 3, Date( ))

Between...And 演算子を使用して、現在の日付から 3 か月以内に出荷する必要のある受注品を表示します。

生年月日

Month([生年月日])=Month(Date())

Month 関数と Date 関数を使用して、誕生日が今月の社員を表示します。

存在しない値 (null) または長さ 0 の文字列に一致する式

次の表に示す式では、null 値または長さ 0 の文字列を含むフィールドなど、情報が欠落している可能性のあるフィールドを取り扱います。null 値は、情報がないことを示し、0 やその他のなんらかの値を表すものではありません。これはデータベースの整合性を保つうえで不可欠な概念であるため、Access でも、この存在しない情報という概念がサポートされています。情報が存在しない状況は、たとえば新商品の価格がまだ決定していない場合など、一時的な場合も含めて実社会で頻繁に発生します。そのため、ビジネスのような実社会の構造を表すデータベースでは、存在しない情報を記録できるようにする必要があります。IsNull 関数を使用すると、フィールドまたはコントロールに null 値が含まれているかを調べることができ、Nz 関数を使用すると、null 値を 0 に変換できます。

フィールド

説明

出荷先の都道府県

Is Null

[出荷先の都道府県] フィールドが null (値なし) の得意先からの受注品を表示します。

出荷先の都道府県

Is Not Null

[出荷先の都道府県] フィールドに値が含まれている得意先からの受注品を表示します。

FAX

""

ファックスを持っていない得意先からの受注品を表示します。ファックスがない場合、[FAX] フィールドには、null 値 (値なし) ではなく長さ 0 の文字列値が含まれています。

パターンを使用してレコードを抽出する式

Like は、パターンに一致する行を抽出する場合に優れた柔軟性を発揮します。Like 演算子では、ワイルドカード文字を使用して検索パターンを定義できるためです。たとえば、ワイルドカード文字である * (アスタリスク) は、どのような文字列にも一致し、この文字を使用すると、特定の文字で始まるすべての名前を簡単に検索できます。たとえば、"山" で始まるすべての名前を検索するには、「Like "山*"」という式を使用します。

詳細については、「Like 演算子」の記事を参照してください。

フィールド

説明

出荷先名

Like "山*"

[出荷先名] フィールドが "山" という文字で始まるレコードをすべて検索します。

出荷先名

Like "*会社"

[出荷先名] フィールドが "会社" という文字で終わるレコードをすべて検索します。

出荷先名

Like "[A-D]*"

[出荷先名] フィールドが "ア" 行から "サ" 行までの文字で始まるレコードをすべて検索します。

出荷先名

Like "*株式*"

[出荷先名] フィールドに "株式" という文字列が含まれているレコードをすべて検索します。

出荷先名

Like "株式会社?"

[出荷先名] フィールドの値の先頭部分に、"株式会社" と言う 4 文字と任意の 1 文字からなる 5 文字の文字列が含まれているレコードをすべて検索します。

出荷先名

Not Like "ア*"

[出荷先名] フィールドが "ア" 以外の文字で始まるすべてのレコードを検索します。

定義域集計関数の結果に基づいて行を抽出する式

値を選択して合計、カウント、または平均する必要がある場合は、定義域集計関数を使用します。たとえば、特定の範囲内に収まる値だけをカウントしたり、Yes として評価される値だけをカウントしたりできます。または、別のテーブルに格納されている値を参照して表示することが必要になる場合もあります。次の表に示す式では、定義域集計関数を使用して一連の値に対する計算を実行し、その結果をクエリの抽出条件として使用します。

フィールド

説明

運送料

> (DStDev("[運送料]", "受注") + DAvg("[運送料]", "受注"))

DStDev 関数と DAvg 関数を使用して、運送料の標準偏差と平均を足した値よりも運送料が上回るすべての受注を表示します。

数量

> DAvg("[数量]", "[受注明細]")

DAvg 関数を使用して、受注量が平均よりも多い商品を表示します。

サブクエリの結果に基づいて抽出する式

ネストされたクエリとも呼ばれるサブクエリを使用して、抽出条件として使用する値を計算できます。次の表に示す式では、サブクエリから返された結果に基づいて行を抽出します。

フィールド

表示される内容

単価

(SELECT [単価] FROM [商品] WHERE [商品名] = "ホワイトソルト")

"ホワイトソルト" と同じ価格の商品。

単価

> (SELECT AVG([単価]) FROM [商品])

単価が平均より高い商品。

給料

> ALL (SELECT [給料] FROM [社員] WHERE ([役職] LIKE "*部課長*") OR ([役職] LIKE "*役員*"))

"部課長" または "役員" の役職を持つ社員よりも給料が高いすべての営業担当社員の給料。

受注合計: [単価] * [数量]

> (SELECT AVG([単価] * [数量]) FROM [受注明細])

合計額が受注額の平均値よりも高い受注。

更新クエリで使用する式

更新クエリを使用して、データベース内の 1 つ以上の既存フィールドの値を変更できます。たとえば、値を置き換えたり、値を完全に削除したりできます。次の表では、更新クエリで式を使用する方法をいくつか示します。これらの式は、クエリのデザイン グリッドで、更新するフィールドの [レコードの更新] 行に入力して使用します。

更新クエリの作成方法の詳細については、「更新クエリを作成して実行する」の記事を参照してください。

フィールド

結果

Title/役職

"販売員"

文字列値を "販売員" に変更します。

プロジェクト開始日

#2007/8/10#

日付値を 2007 年 8 月 10 日に変更します。

廃止

Yes/はい

Yes/No 型フィールドの No 値を Yes に変更します。

部品番号

"PN" & [部品番号]

指定した各部品番号の先頭に "PN" を追加します。

合計品目

[単価] * [数量]

[単価] と [数量] の積を計算します。

運送料

[運送料] * 1.5

運送料を 50% 増しにします。

売上高

DSum("[数量] * [単価]",
"受注明細", "[商品コード]=" & [商品コード])

現在のテーブルの [商品コード] の値が [受注明細] テーブルの [商品コード] の値に一致する場合に、[数量] と [単価] から売上合計を更新します。

発送先郵便番号

Right([発送先郵便番号], 5)

右側の 5 文字を残し、残りの左側の文字を切り捨てます。

単価

Nz([単価])

[単価] フィールドの null 値 (未定義または不明の値) をゼロ (0) に変更します。

SQL ステートメントで使用する式

構造化照会言語 (SQL) は、Access で使用されるクエリ言語です。クエリのデザイン ビューで作成するクエリは、いずれも SQL を使用して記述できます。クエリの SQL ステートメントを表示するには、[表示] メニューの [SQL ビュー] をクリックします。次の表は、式を使用する SQL ステートメントの例です。

式を使用する SQL ステートメント

結果

SELECT [姓],[名] FROM [社員] WHERE [姓]="小田"

姓が "小田" である社員の [姓] フィールドと [名] フィールドの値を表示します。

SELECT [商品コード],[商品名] FROM [商品] WHERE [区分コード]=Forms![新しい商品]![区分コード];

[商品] テーブルの [区分コード] の値が [新しい商品] フォームの [区分コード] の値に一致するレコードについて、[商品コード] フィールドおよび [商品名] フィールドの値を表示します。

SELECT Avg([明細金額]) AS [平均明細金額] FROM [受注明細金額] WHERE [明細金額]>1000;

[明細金額] フィールドの値が 1000 より大きい受注について明細金額の平均を計算し、[平均明細金額] という名前のフィールドに表示します。

SELECT [区分コード], Count([商品コード]) AS [商品コード数] FROM [商品] GROUP BY [区分コード] HAVING Count([商品コード])>10;

10 個以上の商品がある区分について、[商品コード数] という名前のフィールドに商品の合計数を表示します。

ページの先頭へ

既定値の式の例

データベースのデザイン時には、フィールドやコントロールに既定値を割り当てることができます。Access では、そのフィールドを含む新しいレコードが作成されるか、そのコントロールを含むオブジェクトが作成されると、既定値が自動的に入力されます。次の表に示す式は、フィールドまたはコントロールの既定値の例を表しています。

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

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

  2. 変更するフィールドをクリックし、[全般] タブの [既定値] プロパティ ボックスをクリックします。

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

コントロールがテーブルのフィールドに連結されている場合は、フィールドに既定値が設定されていても、コントロールの既定値が優先されます。

フィールド

既定のフィールド値

数量

1

1

地域

"関東"

関東

地域

"New York, N.Y."

"東京, TYO" (句読点が含まれている場合は、二重引用符 (") で囲みます。)

FAX

""

長さ 0 の文字列 (このフィールドの既定値は、null 値ではなく空白にする必要があることを示します)

受注日

Date( )

今日の日付

期限日

Date() + 60

現在の日付の 60 日後の日付

ページの先頭へ

フィールドの入力規則の式の例

式を使用することにより、フィールドまたはコントロールに対して入力規則を作成できます。Access では、作成した入力規則は、そのフィールドまたはコントロールへのデータの入力時に適用されます。入力規則を作成するには、フィールドまたはコントロールの ValidationRule/入力規則プロパティを変更します。さらに、入力規則に違反した場合に表示されるテキストを示す ValidationText/エラー メッセージ プロパティも設定することをお勧めします。ValidationText/エラー メッセージ プロパティを設定しないと、Access の既定のエラー メッセージが表示されます。

フィールドに入力規則を追加する

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

  2. 変更するフィールドをクリックします。

  3. テーブル デザイナーの下部にある [入力規則] プロパティ ボックスをクリックします。

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

    注: 入力規則を作成する場合は、式の前に = 演算子を付けないでください。

以下の表は、ValidationRule/入力規則プロパティに設定する式と、関連する ValidationText/エラーメッセージ プロパティに設定するテキストの例を示しています。

ValidationRule プロパティ

ValidationText プロパティ

<> 0

0 以外の値を入力してください。

0 Or > 100

0 または 100 よりも大きい値を入力してください。

Like "K???"

K で始まる 4 文字の値を入力してください。

< #2007/1/1#

2007/1/1 より前の日付を入力してください。

>= #2007/1/1# And < #2008/1/1#

2007 年の日付を入力してください。

データの入力検査の詳細については、「Create a validation rule to validate data in a field (入力規則を作成してフィールド内のデータを検証する)」の記事を参照してください。

ページの先頭へ

マクロ条件式の例

特定の条件が真になるときだけ、マクロのアクションを実行したい場合があります。たとえば、[カウンター] ボックスの値が 10 の場合にだけアクションを実行する必要があるとします。このとき、マクロの[条件] 列で [Counter]=10 という式を使用して、条件を定義することができます。

マクロ アクションに条件を追加する

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

  2. マクロ デザイナーに [条件] 列が表示されない場合は、[デザイン] タブの [表示/非表示] グループで [条件] をクリックします。

  3. 変更するマクロ アクションの [条件] セルをクリックし、条件式を入力します。

  4. 変更を保存してマクロを閉じます。

ValidationRule/入力規則プロパティと同様に、[条件] 列に指定する式は条件式です。つまり、この式は True または False のどちらかの値に解決されなければなりません。アクションは、条件が True になる場合にだけ実行されます。

アクションの実行に使用する式

If

[都道府県]="大阪府"

マクロが実行されるフォームの [住所] フィールドの値が "大阪府" のとき。

DCount("[受注コード]", "受注") > 35

"受注" テーブルの "受注コード" フィールドに 35 を超えるエントリがあるとき。

DCount("*", "[受注明細]", "[受注コード]=" & Forms![受注]![受注コード]) > 3

[受注明細] テーブルで、[受注] フォームの [受注コード] フィールドと一致する [受注コード] フィールドのエントリが 3 を超えるとき。

[出荷日] Between #2-Feb-2007# And #2-Mar-2007#

マクロが実行されるフォームの [出荷日] フィールドの値が 2007 年 2 月 2 日から 2007 年 3 月 2 日の期間にあるとき。

Forms![商品リスト]![梱包単位] < 5

"商品リスト" フォームの "梱包単位" フィールドの値が 5 未満のとき。

IsNull([担当者])

マクロが実行されるフォームの [担当者] フィールドに値がない (null 値) とき。この式は [担当者] IsNull と同じです。

[支社]="東京本社" And Forms![支社別売上高]![売上総数] > 100

マクロが実行されるフォームの [支社] フィールドの値が "東京本社" で、[支社別売上高] フォームの [売上総数] フィールドの値が 100 を超えるとき。

[都道府県] In ("埼玉県", "大阪府", "福岡県") And Len([郵便番号])<>5

マクロが実行されるフォームの [都道府県] フィールドの値が "埼玉県"、"大阪府"、"福岡県" のいずれかで、郵便番号が 5 桁でないとき。

MsgBox("変更確認",1)=1

MsgBox 関数により表示されるダイアログ ボックスの [OK] をクリックしたとき。[キャンセル] をクリックすると、アクションは実行されません。

注: 一時的にアクションが無視されるようにするには、条件として「False」を入力します。一時的にアクションを無視することによって、マクロの問題点を探すことができます。

ページの先頭へ

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

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

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

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

×