日付が最も新しいレコードまたは最も古いレコードを検索する

この資料では、トップ値クエリを使って一連のレコード内で最も新しい日付または最も古い日付を検索する方法について説明します。 この種類のクエリによって返される情報を使うと、各種の業務上の質問 (たとえば前回得意先から注文があった日付など) に回答できます。

目的に合ったトピックをクリックしてください

トップ値クエリを使用した日付の操作を理解する

最も新しい日付または最も古い日付を調べる

カテゴリまたはグループ内のレコードで最も新しい日付または最も古い日付を検索する

最も新しい日付と最も古い日付を調べる

トップ値クエリを使用した日付の操作を理解する

トップ値クエリは、レコードのテーブルまたはグループ内で最も新しい日付または最も古い日付を含むレコードを検索する必要がある場合に使用します。 そのデータを使って、次のようないくつかの業務上の質問に回答できます。

  • ある社員が最後に売り上げがあったのはいつか。 この回答は、最も生産性が高い社員または最も生産性が低い社員を特定するのに役立ちます。

  • 前回得意先から注文があったのはいつか。 一定期間にわたって得意先から注文がない場合は、その得意先を非アクティブ リストに移動できます。

  • 次に誕生日を迎えるユーザー、または誕生日が近い n 件のユーザーを確認する。

トップ値クエリの作成と使用に関するルール

トップ値クエリを作成するには、最初に選択クエリを作成します。 目的の結果に応じて、並べ替え順序をクエリに適用するか、またはクエリを集計クエリに変換します。 クエリを変換する場合は、"Max" や "Min" などの集計関数を使って最大値または最小値を返したり、"First" や "Last" を使って最も古い日付や最も新しい日付を返したりします。 集計クエリと集計関数は、一連のグループまたはカテゴリ含まれるデータを検出する必要がある場合に使います。 たとえば、会社の活動対象となっている都市ごとに、特定の日付における販売に関する数値を調べる必要があるとします。 この場合、都市がカテゴリとなり、都市ごとのデータを取得する必要があるため、集計クエリを使用します。

作業を進めるにあたって、クエリの種類に関係なく、得意先名などの記述データを含むフィールドと検索する日付値を含むフィールドの両方をクエリで使用する必要があることに注意してください。 さらに、日付/時刻データ型に設定されたフィールドには日付値が存在する必要があります。 この記事で説明するクエリをテキスト フィールド内の日付値に対して実行すると、クエリは失敗します。 さらに、集計クエリを使う場合は、市区町村フィールドや国/地域フィールドなどのカテゴリ情報がデータ フィールドに含まれている必要があります。

トップ値クエリとフィルターの選択

トップ値クエリを作成するか、またはフィルターを適用するかについては、次の基準に従ってください。

  • 任意のフィールドの最も新しい日付または最も古い日付を含むレコードを取得する必要があり、正確な日付値が不明であるかまたは問題でない場合は、トップ値クエリを作成します。

  • 日付が一致するか、特定の日付よりも古い日付または新しい日付を持つレコードをすべて取得する場合は、フィルターを適用します。 たとえば、4 ~ 7 月の間に売り上げがあった日付を確認するには、フィルターを適用します。 フィルターの詳しい説明はこのトピックの範囲外です。

    フィルターの作成と使用の詳細については、「フィルター: ビューに表示するレコード数を制限する」を参照してください。

ページの先頭へ

最も新しい日付または最も古い日付を調べる

以下の手順では、並べ替え順序を使用する基本的なトップ値クエリを作成する方法、式やその他の抽出条件を使用する高度なクエリを作成する方法について説明します。 最初のセクションではトップ値クエリの作成手順を説明し、2 番目のセクションでは抽出条件を追加することで誕生日が近い数名の社員を検索する方法について説明します。 ここでは、次のサンプル テーブルのデータを使います。

都道府県

市区町村

国/地域

誕生日

雇用日

川井

保美

東京都

調布市

日本

1968 年 2 月 5 日

1994 年 6 月 10 日

山本

浩平

神奈川県

川崎市

日本

1957 年 5 月 22 日

1996 年 11 月 22 日

山水

友野

東京都

青梅市

日本

1960 年 11 月 11 日

2000 年 3 月 11 日

宮西

君彦

千葉県

松戸市

日本

1964 年 3 月 22 日

1998 年 6 月 22 日

藤巻

陽子

埼玉県

さいたま市

日本

1972 年 6 月 5 日

2002 年 1 月 5 日

小林

昌子

東京都

青梅市

日本

1970 年 1 月 23 日

1999 年 4 月 23 日

河田

弘穀

神奈川県

横浜市

日本

1964 年 4 月 14 日

2004 年 10 月 14 日

西村

美智江

長野県

松本市

日本

1959 年 10 月 29 日

1997 年 3 月 29 日

必要に応じ、このサンプル データを手動で新しいテーブルに入力するか、このサンプル テーブルを Microsoft Office Excel 2007 などの表計算プログラムにコピーし、Access を使って結果のワークシートをテーブルにインポートします。

方法を確認する

サンプル データを手動で入力する

  1. [作成] タブの [テーブル] で、[テーブル] をクリックします。

    データベースに空の新規テーブルが追加されます。

    注: 空の新規データベースが開かれている場合は、この手順は必要ありませんが、データベースにテーブルを追加する必要があるときは必ずこの手順どおりに行います。

  2. 見出し行の先頭セルをダブルクリックして、サンプル テーブルのフィールド名を入力します。

    Access の既定では、見出し行の空のフィールドには、次のように、[新しいフィールドの追加] というテキストが表示されています。

    データシートの新しいフィールド

  3. 矢印キーを使って (Tab キーを押すか、新しいセルをダブルクリックしてもかまいません)、次の空の見出しセルに移動し、2 つ目のフィールド名を入力します。 すべてのフィールド名を入力するまでこの手順を繰り返します。

  4. サンプル テーブルにデータを入力します。

    データを入力する際、各フィールドのデータ型を Access が予測します。 リレーショナル データベースを初めて使う場合は、テーブルのフィールドごとに、数値、文字列、日付/時刻などの特定のデータ型を設定する必要があります。 データ型を設定すると、データを正確に入力できるだけでなく、計算で電話番号を使用する場合など、誤入力を防ぐことができます。 今回のサンプル テーブルでは、Access にデータ型を予測させます。

  5. データの入力が完了したら、[保存] をクリックします。

    (キーボード ショートカット: Ctrl+S)

    [名前を付けて保存] ダイアログ ボックスが表示されます。

  6. [テーブル名] ボックスに、サンプル テーブルの名前を入力し、[OK] をクリックします。

    説明セクションのクエリで使用しているため、各サンプル テーブルの名前を使用します。

  7. このセクションの最初に記載されている各サンプル テーブルを作成するまで、上記の手順を繰り返します。

テーブルを表計算プログラムにコピーする

  1. 表計算プログラムを開始して、空のファイルを新規に作成します。 Excel を使う場合は、既定で新しい空白のブックが作成されます。

  2. 前のセクションのサンプル テーブルをコピーし、1 番目のワークシートに先頭のセルから貼り付けます。

  3. シート タブを右クリックして [名前の変更] をクリックし、ワークシートに "社員" という名前を付けます。

  4. 任意の場所にスプレッドシート ファイルを保存し、次の手順に進みます。

テーブルを Access にインポートする

  1. 新規または既存のデータベースで、次の操作を行います。

    [外部データ] タブの [インポート] で、[Excel] をクリックします。

    または

    [その他] をクリックして、一覧からスプレッドシート プログラムを選びます。

    [外部データの取り込み - プログラム名スプレッドシート] ダイアログ ボックスが表示されます。

  2. [参照] をクリックして、上の手順で作成したスプレッドシート ファイルを開いて、[OK] をクリックします。

    スプレッドシート インポート ウィザードが起動します。

  3. ウィザードでは、ブック内の最初のワークシートが既定で選ばれ (前のセクションに従った場合は [社員])、ワークシートのデータが画面の下部に表示されます。 [次へ] をクリックします。

  4. [先頭行をフィールド名として使う] をクリックし、[次へ] をクリックします。

  5. 必要に応じて、[フィールドのオプション] のテキスト ボックスとリストを使って、フィールド名とデータ型を変更するか、またはインポート プロセスからフィールドを省略します。 それ以外の場合は、[次へ] をクリックします。

    上記のサンプル テーブルを使用する場合は、この段階で変更を加える必要はありません。

  6. [主キーを自動的に設定する] オプションが選択された状態で、[次へ] をクリックします。

  7. Access の既定では、ワークシートの名前を新しいテーブルに使用します。 名前をそのまま受け入れるか、別の名前を入力して、[完了] をクリックします。

注: 表計算プログラムがない場合は、メモ帳などのテキスト エディターにサンプル データをコピーすることもできます。 テキスト データのインポートについては、「テキスト ファイルのデータのインポートとリンクの設定」を参照してください。

基本的なトップ値クエリを作成する

  1. [作成] タブの [その他] グループで、[クエリ デザイン] をクリックします。

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

  2. このダイアログ ボックスで、クエリで使用するテーブルをクリックし、[追加] をクリックしてテーブルをデザイナーの上部に配置し、最後に [閉じる] をクリックします。

    または

    テーブルをダブルクリックし、[閉じる] をクリックします。

    サンプル データを使用する場合は、[社員] テーブルをクエリに追加します。

  3. クエリに使用するフィールドをデザイン グリッドに追加します。 それぞれのフィールドをダブルクリックするか、または [フィールド] 列の空白のセルにそれぞれのフィールドをドラッグ アンド ドロップします。

    サンプル テーブルを使う場合は、[姓]、[名]、[誕生日] の各フィールドを追加します。

  4. 上位または下位の値を含むフィールド (サンプル テーブルを使う場合は [誕生日] フィールド) 内で、[並べ替え] 行をクリックし、[昇順] または [降順] を選びます。

    降順の並べ替え順序を選んだ場合は最も新しい日付が返され、昇順の並べ替え順序を選んだ場合は最も古い日付が返されます。

    重要: [並べ替え] 行に値を設定する必要があるのは、日付を含むフィールドに対してだけです。 他のフィールドに対して並べ替え順序を指定してクエリを実行した場合は、必要な結果を得られません。

  5. [デザイン] タブの [ツール] で [すべて] ([トップ値] の一覧) の横にある下向き矢印をクリックし、表示するレコードの数を入力するか、一覧からオプションを選びます。

  6. [実行] ボタンの画像 をクリックしてクエリを実行し、データシート ビューに結果を表示します。

  7. クエリを保存します。次の手順で使用するために、クエリを開いたままにしておきます。

このようなトップ値クエリでは、最年長または最年少の社員などの基本的な質問の回答を得ることができます。 次の手順では、式やその他の抽出条件を使ってクエリの有効性と柔軟性を高める方法について説明します。 次の手順で示す抽出条件を使用すると、次に誕生日を迎える 3 人の社員が返されます。

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

注: 以下の手順では、前のセクションで説明したクエリを使用することを前提としています。

  1. 前の手順で作成したクエリをデザイン ビューに切り替えます。

  2. クエリ デザイン グリッドで、[誕生日] 列の右の列に、「Expr1: DatePart("m",[誕生日])」という式をコピーして貼り付けるか入力します。 次に [実行] をクリックします。

    DatePart 関数により、[誕生日] フィールドの月の部分を抽出します。

  3. デザイン ビューに切り替えます。

  4. 最初の式の右側に、「Expr2: DatePart("d",[誕生日])」という式を貼り付けるか入力します。 次に [実行] をクリックします。

    この場合は、DatePart 関数により、[誕生日] フィールドの日付部分を抽出します。

  5. デザイン ビューに切り替えます。

  6. 入力した 2 つの式のそれぞれの [表示] 行のチェック ボックスをオフにし、それぞれの式の [並べ替え] 行をクリックし、[昇順] を選びます。

  7. [実行] をクリックします。

  8. 必要に応じて、抽出条件を指定して、クエリの範囲を制限することもできます。 抽出条件を指定すると、その条件に一致するレコードだけが並べ替えられ、この並べ替えられた一覧内でフィールドの上位または下位の値が特定されます。

    サンプル データを使った操作を続行するには、デザイン ビューに切り替えます。 [誕生日] 列の [抽出条件] 行に、次の式を入力します。

    Month([誕生日]) > Month(Date()) Or Month([誕生日])= Month(Date()) And Day([誕生日])>Day(Date())

    この式は次の処理を実行します。"Month([誕生日]) > Month(Date())" 部分は、各社員の誕生日が当月より先の月であるかどうかを調べ、当月より先である場合はそのレコードをクエリに含めます。 式の "Month([誕生日])= Month(Date()) And Day([誕生日])>Day(Date())" 部分は、今月誕生日を迎える社員の誕生日が、今日か今日よりも先の日であるかどうかを調べます。 この条件を満たす場合、関数がそれらのレコードをクエリに含めます。 要約すると、この式により、1 月 1 日からこのクエリを実行する日までの誕生日のレコードは無視されます。

    クエリの抽出条件式の例については、「クエリの抽出条件の例」を参照してください。

  9. [デザイン] タブの [ツール] で [すべて] ([トップ値] の一覧) の横にある下向き矢印をクリックし、表示するレコードの数を入力するか、一覧からオプションを選びます。

    次に誕生日を迎える 3 名を検索するには「3」と入力します。

  10. [実行] ボタンの画像 をクリックしてクエリを実行し、データシート ビューに結果を表示します。

表示されるレコードの数が指定したよりも多い場合

トップ値クエリの対象のデータに同じ日付値を持つ複数のレコードが存在する場合は、指定したよりも多くのデータが返される場合があります。 たとえば、3 つの社員レコードを取得するようにトップ値クエリをデザインできますが、次の表に示すように "川村" と "森上" の誕生日が同じ場合は 4 つのレコードが返されます。

誕生日

山口

1968 年 9 月 26 日

小川

1970 年 10 月 2 日

森上

1965 年 10 月 15 日

川村

1969 年 10 月 15 日

表示されるレコードの数が指定した数よりも少ない場合

フィールド内の上位または下位の 5 つのレコードを返すように設計したクエリで 3 つのレコードしか返されなかったとします。 通常、このような問題を解決するには、クエリをデザイン ビューで開き、デザイン グリッドの列の [条件] 行を確認します。

抽出条件の詳細については、「クエリの抽出条件の例」を参照してください。

重複したレコードが返される場合

トップ値クエリで重複したレコードが返される場合は、基になるテーブルに重複するレコードが含まれているか、各レコードを区別できるフィールドがクエリに指定されていないためにレコードが重複しているかのように表示されることが考えられます。 たとえば、次の表は、最近出荷された 5 件の注文をその取引を担当した販売員の名前と一緒に返すクエリを実行した結果です。

出荷日

販売員

2004 年 11 月 12 日

岩村

2004 年 11 月 12 日

Cajhen

2004 年 10 月 12 日

松沢

2004 年 10 月 12 日

松沢

2004 年 10 月 12 日

岩村

3 番目と 4 番目のレコードは、重複しているように見えますが、販売員 "松沢" が同じ日に 2 つの注文を処理している可能性があります。

重複したレコードが返されないようにするには、要件に応じて、次の 2 つのいずれかの方法をとることができます。 1 つは、クエリのデザインを変更して、各レコードを区別できるフィールド ([受注コード] フィールドや [得意先コード] フィールドなど) を追加します。 もう 1 つは、重複したレコードのうちいずれか 1 つを表示すればよい場合は、クエリの [固有の値] プロパティを [はい] に設定し、異なるレコードのみが表示されるようにします。 このプロパティを設定するには、クエリのデザイン ビューで、クエリ デザイナーの上半分の空白の領域で右クリックし、ショートカット メニューの [プロパティ] をクリックします。 次に、クエリのプロパティ シートで、[固有の値] プロパティを [はい] に設定します。

重複したレコードの処理の詳細については、「重複データを検索する、非表示にする、または削除する」を参照してください。

ページの先頭へ

カテゴリまたはグループ内のレコードで最も新しい日付または最も古い日付を検索する

集計クエリは、グループまたはカテゴリ内のレコードで最も古い日付または最も新しい日付を検索するために使用します。 集計クエリは、"Min"、"Max"、"Sum"、"First"、"Last" などの集計関数を使って特定のフィールドの値を計算する選択クエリです。

以下の手順では、演出、ライティング、ケータリングなど、いろいろな側面に注意を払うことが求められるイベント運営業務を取り上げます。 加えて、管理対象のイベントは、製品発表、街頭宣伝、コンサートなどのカテゴリに分類されます。 以下の手順では、カテゴリ別に、"次のイベントはいつか" といった一般的な質問に回答する方法について説明します。 つまり "次の製品発表はいつか"、"次回のコンサートはいつか" などの質問です。

作業を進めるにあたって、ここで作成する集計クエリには、自分のグループまたはカテゴリ データを含むフィールドと、自分の日付を含むフィールドだけを既定で含めることができる点に注意してください。 カテゴリ内の項目 (得意先や仕入れ先の名前など) を記述する他のフィールドを含めることはできません。 ただし、別のクエリを作成して、記述データを含むフィールドに集計クエリを結合することができます。 その方法については後で説明します。

以下の手順では、次の 3 つのテーブルを使用することを前提にしています。

[イベント タイプ] テーブル    

タイプ コード

イベント タイプ

1

製品の販売開始

2

企業の催事

3

私的な催事

4

資金調達

5

見本市

6

講義

7

コンサート

8

展示会

9

街頭宣伝

"得意先" テーブル   

顧客 ID

会社

担当者

1

Contoso, Ltd. Graphic

今賀 千津

2

Tailspin Toys

Eiji Yasuda

3

Fabrikam

西詰 幸造

4

Wingtip Toys

福本 富美江

5

A. Datum

舟田 けい

6

Adventure Works

ブライアン バーク

7

Design Institute

藤島 昭英

8

School of Fine Art

田本 千賀

[イベント] テーブル    

イベント コード

イベント タイプ

得意先

イベントの日付

価格

1

製品の販売開始

Contoso, Ltd.

2003 年 4 月 14 日

¥1,000,000

2

企業の催事

Tailspin Toys

2003 年 4 月 21 日

¥800,000

3

見本市

Tailspin Toys

2003 年 5 月 1 日

¥2,500,000

4

展示会

Graphic Design Institute

2003 年 5 月 13 日

¥450,000

5

見本市

Contoso, Ltd.

2003 年 5 月 14 日

¥550,0000

6

コンサート

美術学校

2003 年 5 月 23 日

¥12,000

7

製品の販売開始

A. Datum

2003 年 6 月 1 日

¥15,000

8

製品の販売開始

Wingtip Toys

2003 年 6 月 18 日

¥21,000

9

資金調達

Adventure Works

2003 年 6 月 22 日

¥130,000

10

講義

Graphic Design Institute

2003 年 6 月 25 日

¥245,000

11

講義

Contoso, Ltd.

2003 年 7 月 4 日

¥380,000

12

街頭宣伝

Graphic Design Institute

2003 年 7 月 4 日

¥550,000

注: 以下の手順では、[得意先] テーブルと [イベント タイプ] テーブルが、[イベント] テーブルとの 1 対多リレーションシップの "1" 側にあることを想定しています。 この場合、[イベント] テーブルは、[得意先コード] フィールドと [タイプ コード] フィールドを共有します。 次のセクションで説明する集計クエリは、このリレーションシップが定義されていないと動作しません。

このデータをデータベースに追加する

これらのサンプル テーブルをデータベースに追加するには、「最も新しい日付または最も古い日付を調べる」の手順に従いますが、いくつか異なる手順があります。

  • [イベント タイプ] テーブルと [得意先] テーブルを Excel にコピーするときに、[タイプ コード] 列と [得意先コード] 列はコピーしないでください。 主キー値は Access にワークシートをインポートするときに自動的に追加されるので手間が省けます。

  • テーブルをインポートしたら、[イベント] テーブルをデザイン ビューで開き、[イベント タイプ] 列と [得意先] 列をルックアップ フィールドに変換します。 そのためには、それぞれのフィールドの [データ型] 列をクリックし、[ルックアップ ウィザード] をクリックします。

    ルックアップ フィールドを作成する際に、[イベント タイプ] 列と [得意先] 列内のテキスト値がソース テーブルの数値と置き換えられます。

    ルックアップ フィールドの作成方法と使用方法の詳細については、「複数の値を格納するリストを使用する」と「複数値を持つフィールドの概要」の各記事を参照してください。 これらの記事では、指定されたフィールドに対して複数の値を選択できるようにするルックアップ フィールドを作成する方法と、ルックアップ リストを作成する方法について説明します。

集計クエリを作成する

  1. [作成] タブの [その他] グループで、[クエリ デザイン] をクリックします。

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

  2. このダイアログ ボックスで、使用するテーブルを選び、[追加] をクリックします。テーブルの追加が完了したら、[閉じる] をクリックします。

    または

    使用するテーブルをダブルクリックしたら、[閉じる] をクリックします。 クエリ デザイナーの上の部分に、各テーブルが表示されます。

    上記のサンプル テーブルを使う場合は、[イベント] テーブルと [イベント タイプ] テーブルを追加します。

  3. クエリで使用するテーブルのフィールドをダブルクリックします。 この段階では、グループ フィールドまたはカテゴリ フィールド、値フィールドだけをクエリに追加します。

    上記の 3 つのテーブルのサンプル データを使用する場合は、[イベント タイプ] テーブルの [イベント タイプ] フィールドか [イベント] テーブルの [イベント日付] フィールドを追加します。

  4. 必要に応じて、クエリの範囲を制限する抽出条件を指定できます。 抽出条件に合うレコードのみが並べ替えられ、この並べ替えられた一覧内でフィールドの上位と下位の値が特定されます。

    たとえば、"私的な催事" カテゴリのイベントを抽出するには、[イベント タイプ] 列の [抽出条件] 行に「<>"私的な催事"」という式を入力します。

    クエリの抽出条件式の例については、「クエリの抽出条件の例」を参照してください。

  5. 次の操作を行って、このクエリを集計クエリに変換します。

    [デザイン] タブの [表示/非表示] グループで [集計] をクリックします。

    デザイン グリッドに [集計] 行が表示されます。

  6. それぞれのグループ フィールドまたはカテゴリ フィールドの [集計] 行が [グループ化] に設定されていることを確認し、次に値フィールド (上位または下位の値を含むフィールド) の [集計] 行を [最大] または [最小] に設定します。

    [最大] は、数値フィールドでは最大値を、日付/時刻型フィールドでは最も新しい日付または時刻値を返します。 [最小] は、数値フィールドでは最小値を、日付/時刻型フィールドでは最も古い日付または時刻値を返します。

  7. [デザイン] タブの [ツール] で [すべて] ([トップ値] の一覧) の横にある下向き矢印をクリックし、表示するレコードの数を入力するか、一覧からオプションを選びます。

    この場合は、[すべて] を選び、[実行] をクリックして結果をデータシート ビューに表示します。

    注: 手順 6. で選んだ関数に応じて、クエリ内の値フィールドの名前が "フィールド名の最大値" または "フィールド名の最小値" に変更されます。 サンプル テーブルを使用する場合、フィールド名は "イベント日付の最大値" または "イベント日付の最小値" に変更されます。

  8. クエリを保存し、次の手順に進みます。

クエリ結果には、製品名や製品に関するその他の情報は表示されません。 追加のデータを表示するには、上記の手順で作成したクエリが組み込まれた 2 つ目のクエリを作成する必要があります。 次に、この方法について説明します。

2 番目のクエリを作成して関連データを追加する

  1. [作成] タブの [その他] グループで、[クエリ デザイン] をクリックします。

  2. [テーブルの表示] ダイアログ ボックスで、[クエリ] タブをクリックし、前のセクションで作成した集計クエリをダブルクリックします。

  3. [テーブル] タブをクリックし、集計クエリに使用したテーブルと、他の関連データが格納されている任意のテーブルを追加します。 上記の 3 つのサンプル テーブルを使用している場合は、[イベント タイプ]、[イベント]、[得意先] の各テーブルを新しいクエリに追加します。

  4. 集計クエリ内のフィールドを親テーブルの対応するフィールドに結合します。 そのためには、集計クエリ内の各フィールドを、テーブル内の対応するフィールドにドラッグします。

    3 つのテーブルのサンプル データを使う場合は、集計クエリ内の [イベント タイプ] 列を [イベント タイプ] テーブルの [イベント タイプ] フィールドにドラッグします。 次に、集計クエリ内の [イベント日付の最大値] 列を [イベント] テーブルの [イベント日付] フィールドにドラッグします。 これらの結合を作成することで、集計クエリのデータと他のテーブルのデータを新しい選択クエリにまとめることができます。

  5. 他のテーブルにある追加の記述フィールドをクエリに追加します。

    3 つのテーブルのサンプル データを使う場合は、[得意先] テーブルの [会社名] フィールドと [連絡先] フィールドを追加できます。

  6. オプションで、1 つまたは複数の列に対して並べ替え順序を指定します。 たとえば、カテゴリをアルファベット順に並べ替えるには、[イベント タイプ] 列の [並べ替え] 行を [昇順] に設定します。

  7. [デザイン] タブの [結果] グループで、[実行] をクリックします。

    クエリの結果がデータシート ビューに表示されます。

ヒント    [価格] 列の見出しを [価格の最大値] または [価格の最小値] にしたくない場合は、クエリをデザイン ビューで開き、グリッドの [価格] 列に、「価格: 価格の最大値」または「価格: 価格の最小値」と入力します。 これにより、データシート ビューの列の見出しとして、"価格" が表示されるようになります。

ページの先頭へ

最も新しい日付と最も古い日付を調べる

この記事の前半で作成したクエリは、上位の値と下位の値の両方ではなく一方だけを返します。 1 つのビューに両方の値を表示するには、上位の値を取得するクエリと、下位の値を取得するクエリの 2 つのクエリを作成して、その結果を結合し、1 つのテーブルに保存する必要があります。

上位の値と下位の値を取得し、そのデータをテーブルに表示するには、次の手順に従います。

  • トップ値クエリとボトム値クエリを作成します。データをグループ化する必要がある場合は、"最小" 関数と "最大" 関数を使用した集計クエリを作成します。

  • トップ値クエリ (または "最大" 集計クエリ) をテーブル作成クエリに変換し、新しいテーブルを作成します。

  • ボトム値クエリ (または "最小" 集計クエリ) を追加クエリに変換し、レコードをトップ値テーブルに追加します。

    次のセクションの各手順では、この方法について説明します。

    クエリを作成する

    1. トップ値クエリとボトム値クエリを作成します。

      トップ値クエリまたはボトム値クエリの作成手順については、この記事前半の最も新しい日付または最も古い日付を調べるを参照してください。 レコードをカテゴリ別にグループ化する必要がある場合は、この記事前半のカテゴリまたはグループ内のレコードで最も新しいまたは最も古い日付を検索するを参照してください。

      前のセクションのサンプル テーブルを使用する場合は、[イベント] テーブルのデータだけを使ってください。 両方のクエリで、[イベント] テーブルの [イベント タイプ]、[得意先]、[イベント日付] の各フィールドを使用します。

    2. たとえば "上位値" や "下位値" などのわかりやすい名前をそれぞれのクエリに付けて保存します。次の手順で使用するためにクエリを開いたままにしておきます。

テーブル作成クエリを作成する

  1. トップ値クエリがデザイン ビューに開かれている状態で、次の操作を行います。

    [デザイン] タブの [クエリの種類] グループで [テーブルの作成] をクリックします。

    [テーブルの作成] ダイアログ ボックスが表示されます。

  2. [テーブル名] ボックスに、上位の値と下位の値のレコードを格納するテーブルの名前を入力します。 たとえば、「上位/下位レコード」と入力し、[OK] をクリックします。

    クエリを実行すると毎回、結果がデータシート ビューに表示される代わりにテーブルが作成され、上位の値が現在のデータで置き換えられます。

  3. クエリを保存して閉じます。

追加クエリを使用してテーブルから他のテーブルにレコードを追加する

  1. ボトム値クエリがデザイン ビューで開いている状態で、次の操作を行います。

    [デザイン] タブの [クエリの種類] グループで [追加] をクリックします。

  2. [追加] ダイアログ ボックスが表示されます。

  3. [テーブルの作成] ダイアログ ボックスに入力したものと同じ名前を入力します。

    たとえば、「上位/下位レコード」と入力し、[OK] をクリックします。 クエリを実行すると、結果がデータシート ビューに表示される代わりに、[上位/下位レコード] テーブルにレコードが毎回追加されます。

  4. クエリを保存して閉じます。

クエリを実行する

  • これで、2 つのクエリを実行できるようになりました。 ナビゲーション ウィンドウで、トップ値クエリをダブルクリックし、メッセージが表示されたら [はい] をクリックします。 次に、ボトム値クエリをダブルクリックし、メッセージが表示されたら [はい] をクリックします。

  • [上位/下位レコード] テーブルをデータシート ビューで開きます。

重要: テーブル作成クエリまたは追加クエリを実行しても何も起こらない場合は、Access ステータス バーに次のようなメッセージが表示されていないかを確認してください。

無効モードのため、アクションまたはイベントはブロックされました。

このメッセージが表示された場合は、次の操作を行います。

  • メッセージ バーがまだ表示されていない場合は、表示します。 メッセージ バーを表示するには、[データベース ツール] タブの [表示/非表示] グループで [メッセージ バー] をクリックします。

  • メッセージ バーの [オプション] をクリックします。

    [Microsoft Office セキュリティ オプション] ダイアログ ボックスが表示されます。

  • [このコンテンツを有効にする] をクリックし、[OK] をクリックします。

  • クエリをもう一度実行します。

無効モードと Access のセキュリティの詳細については、「Access 2007 データベースを保護する」を参照してください。

ページの先頭へ

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

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

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

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

×