クエリの概要

適用先
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

クエリを使用すると、Access データベース内のデータを簡単に表示、追加、削除、または変更できます。 クエリを使用するその他の理由:

クエリは、データの検索と操作に役立ちます

適切に設計されたデータベースでは、フォームまたはレポートで提供するデータは、通常、複数のテーブルに散らばって存在しています。 クエリでは、さまざまなテーブルから情報を取得し、それをフォームまたはレポートに表示するために組み立てることができます。 クエリは、データベースからのデータ結果の要求でも、データに対するアクションの要求でも、あるいはその両方でもかまいません。 クエリを使用すると、簡単な質問に対する回答の提供、計算の実行、異なるテーブルのデータの結合、データベースからのデータの追加、変更、または削除を行うことができます。 クエリは非常に汎用性が高いため、クエリには多くの種類があり、タスクに基づいてクエリの種類を作成します。

主なクエリの種類 用途
選択 テーブルからのデータの取得、計算を実行します。
アクション データの追加、変更、削除を行います。 各タスクには特定の種類のアクション クエリが含まれています。

選択クエリを作成する

テーブル内の特定のフィールドのデータのみをレビューする場合、複数のテーブルのデータを同時にレビューする場合、または特定の条件に基づいてデータを表示する場合には、クエリの種類の選択が最適です。 詳細については、「 簡単な選択クエリの作成」を参照してください。

選択したフィールドからデータを確認する

たとえば、データベースに製品に関する多くの情報を含むテーブルがあり、製品とその価格のリストを確認する場合、製品名とそれぞれの価格だけを返す選択クエリを作成する方法を次に示します。

  1. データベースを開き、[ 作成 ] タブで [ クエリ デザイン] をクリックします。
  2. [ 表 ] タブで、[ 製品 ] テーブルをダブルクリックします。
  3. [商品] テーブルに [商品名] フィールドと [定価] フィールドがあるとします。 [製品名] と [定価] をダブルクリックして、これらのフィールドをクエリ デザイン グリッドに追加します。
  4. [ クエリ デザイン] タブの [実行] をクリックします。 クエリが実行され、製品とその価格のリストが表示されます。

ページの先頭へ

たとえば、食品を販売する店舗のデータベースがあり、特定の都市に住む顧客の注文を確認する場合などです。 注文に関するデータと顧客に関するデータが、それぞれ Customers と Orders という 2 つのテーブルに格納されているとします。 各テーブルに 2 つのテーブル間の一対多リレーションシップの基礎となる [得意先 ID] フィールドがある場合。 次の手順を使用して、ラスベガスなどの特定の都市の顧客の注文を返すクエリを作成できます。

  1. データベースを開きます。 [作成] タブの [クエリ] で [クエリ デザイン] をクリックします。
  2. [ テーブル ] タブで、[ 得意先] と [受注] をダブルクリックします。
    "得意先" テーブルの [ID] フィールドと [受注] テーブルの [得意先 ID] フィールドを結ぶ線 (結合) に注意してください。 この行は、2 つのテーブル間のリレーションシップを示します。
  3. "顧客" テーブルで "会社" と "都道府県" をダブルクリックして、これらのフィールドをクエリのデザイン グリッドに追加します。
  4. クエリ デザイン グリッドの [市区町村] 列で、[行の表示] のチェック ボックスをオフにします。
  5. [市区町村] 列の [抽出条件] 行に「ラスベガス」と入力します。
    [表示] チェック ボックスをオフにすると、クエリの結果に都市が表示されなくなります。また、[抽出条件] 行に「ラスベガス」と入力すると、[都市] フィールドの値がラスベガスであるレコードのみを表示するように指定されます。 この場合、ラスベガスにいる顧客のみが返されます。 抽出条件と共に使用するためにフィールドを表示する必要はありません。
  6. [受注] テーブルで、[ 受注 ID ] と [ 受注日 ] をダブルクリックして、これらのフィールドをクエリ デザイン グリッドの次の 2 つの列に追加します。
  7. [ クエリ デザイン ] タブの [ 結果 ] グループで、[ 実行] をクリックします。 クエリが実行され、ラスベガスの顧客に対する注文のリストが表示されます。
  8. クエリを保存するには、Ctrl キーを押しながら S キーを押します。

ページの先頭へ

パラメーター クエリを作成する

特定のクエリのバリエーションを頻繁に実行する場合は、パラメーター クエリの使用を検討してください。 パラメーター クエリを実行すると、クエリはフィールド値の入力を求め、指定した値を使用してクエリの条件を作成します。

ラスベガスに居住する顧客の注文を返す選択クエリの作成方法を学習した前の例に続き、選択クエリを変更して、クエリを実行するたびに都市を指定するように求めることができます。 手順を実行するには、前の例で作成したデータベースを開きます。

  1. ナビゲーション ウィンドウで、(前のセクションで作成した) " Orders by City " という名前のクエリを右クリックし、ショートカット メニューの [ デザイン ビュー ] をクリックします。

  2. クエリ デザイン グリッドの [市区町村] 列の [抽出条件 ] 行で、 ラスベガスを削除して、「 [For what city?] と入力します。
    文字列 [For what city?] はパラメーター プロンプトです。 角かっこは、クエリで入力を求めることを示し、テキスト (この場合は 、For what city?) がパラメーター プロンプトに表示される質問であることを示します。

    注

    ピリオド (.) も感嘆符 (!) も、パラメーター プロンプトでテキストとして使用することはできません。

  3. [市区町村] 列の [行の表示] のチェック ボックスをオンにすると、クエリ結果に市区町村が表示されます。

  4. [ クエリ デザイン ] タブの [ 結果 ] グループで、[ 実行] をクリックします。 このクエリでは、City の値を入力するように求められます。

  5. 「New York」と入力し、Enter キーを押して、ニューヨークの顧客の注文を表示します。
    指定できる値がわからない場合はどうすればよいですか? プロンプトの一部としてワイルドカード文字を使用できます。

  6. [ホーム] タブの [表示] で [表示] をクリックし、[デザイン ビュー] をクリックします。

  7. クエリ デザイン グリッドの [市区町村] 列の [抽出条件] 行に「Like [For what city?]&"*".
    このパラメーター プロンプトでは、Like キーワード (keyword)、アンパサンド (&)、および引用符で囲まれたアスタリスク (*) を使用すると、ワイルドカード文字を含む文字の組み合わせを入力してさまざまな結果を返すことができます。 たとえば、ユーザーが「 *」と入力すると、すべての都市が返されます。ユーザーが「 L」と入力すると、クエリは文字 "L" で始まるすべての都市を返します。ユーザーが「 *s*」と入力すると、クエリは文字 "s" を含むすべての都市を返します。

  8. [ クエリ デザイン ] タブの [ 結果 ] グループで [実行] をクリックし、クエリ プロンプトで「 New」と入力して Enter キーを押します。
    クエリが実行され、ニューヨークの顧客の注文が表示されます。

パラメーターのデータ型を指定する

パラメーターでどのようなデータ型を受け入れるようにするかを指定することもできます。 どのパラメーターにもデータ型を設定できますが、特に、数値、通貨、日付/時刻のデータに対してデータ型を設定することが重要です。 パラメーターが受け入れるデータ型を指定した場合、ユーザーが間違ったデータ型を入力すると (通貨が必要な場合にテキストを入力するなど)、わかりやすいエラー メッセージが表示されます。

テキスト データを受け入れるようにパラメーターが設定されている場合、入力はすべてテキストとして解釈され、エラー メッセージは表示されません。

クエリ内のパラメーターのデータ型を指定するには、次の手順に従います。

  1. クエリをデザイン ビューで開いた状態で、[ クエリ デザイン ] タブの [表示/非表示 ] グループで [パラメーター] をクリックします。
  2. [クエリ パラメーター] ダイアログ ボックスの [パラメーター] 列に、データ型を指定する各パラメーターのプロンプトを入力します。 各パラメーターが、クエリ デザイン グリッドの [抽出条件] 行で使用するプロンプトと一致していることをご確認ください。
  3. [データ型] 列で、各パラメーターのデータ型を選びます。

詳細については、「 クエリの実行時にパラメーターを使用して入力を求める」を参照してください。

ページの先頭へ

集計クエリを作成する

データシートの [集計] 行は役に立ちますが、より複雑な質問については集計クエリを使用します。 集計クエリは、製品ごとの合計売上高を確認する場合など、データをグループ化して集計できる選択クエリです。 集計クエリでは、Sum 関数 (集計関数) を使って、製品ごとの合計売上を表示できます。

次の手順を使用して、前の例で作成した Product Subtotals クエリを変更して、製品別の製品小計を集計します。

  1. [ホーム] タブで、[表示]>[デザイン ビュー] をクリックします。
    [製品の小計] クエリがデザイン ビューで開きます。
  2. [ クエリ デザイン] タブの [表示/非表示 ] グループで [合計] をクリックします。
    [ 合計] 行はクエリのデザイン グリッドに表示されます。

注

デザイン グリッドの [集計 ] 行とデータシートの [ 集計 ] 行は、同じ名前を持っていますが、同じではありません。

  • デザイン グリッドの [集計 ] 行を使用して、フィールド値別にグループ化できます。
  • 集計クエリの結果にデータシートの 集計 行を追加できます。
  • デザイン グリッドの [集計] 行を使用する場合は、フィールドごとに集計関数を選ぶ必要があります。 フィールドで計算を実行しない場合は、フィールドでグループ化できます。
  • デザイン グリッドの 2 列目の [ 合計 ] 行で、ドロップダウン リストから [合計] を選択します。
  • [ クエリ デザイン ] タブの [ 結果 ] グループで、[ 実行] をクリックします。 クエリが実行され、製品の一覧と小計が表示されます。
  • クエリを保存するには、Ctrl キーを押しながら S キーを押します。 クエリは開いたままにしておきます。

詳細については、「 集計行を使ってデータシートに列の合計を表示する」を参照してください。

ページの先頭へ

データに基づいて計算を行う

通常、同じデータベース内のデータに基づいている場合でも、小計などの計算値を格納するためにテーブルを使用しません。これは、基になる値が変更されると計算値が古くなる可能性があるためです。 たとえば、毎年値を更新する必要があるため、誰かの年齢をテーブルに格納しません。代わりに、ユーザーの生年月日を格納し、クエリを使用してユーザーの年齢を計算します。

たとえば、販売したい製品のデータベースがある場合などです。 このデータベースには、各製品の価格や数量などのフィールドに製品に関する情報を含む "受注明細" というテーブルがあります。 各製品の数量にその製品の単価を掛け、各製品の数量にその製品の単価と割引を掛け、合計単価から合計割引を差し引くクエリを使用して、小計を計算できます。 前の例でサンプル データベースを作成した場合は、それを開いて、手順を実行します。

  1. [作成] タブで [クエリ デザイン] をクリックします。
  2. [ テーブル] タブで、[ 受注明細] をダブルクリックします。
  3. [受注明細] テーブルで [ 製品 ID ] をダブルクリックして、このフィールドをクエリ デザイン グリッドの最初の列に追加します。
  4. グリッドの 2 列目の フィールド行を 右クリックし、ショートカット メニューの [ ズーム ] をクリックします。
  5. [ ズーム] ボックスに次のように入力するか貼り付けます: 小計: ([数量]*[単価])-([数量]*[単価]*[割引])
  6. [OK] をクリックします。
  7. [ クエリ デザイン] タブの [実行] をクリックします。 クエリが実行され、注文ごとの製品と小計のリストが表示されます。
  8. Ctrl + S キーを押してクエリを保存し、クエリに Product Subtotals という名前を付けます。

詳細については、「 集計行を使ってデータシートに列の合計を表示する」を参照してください。

ページの先頭へ

集計または集計データの表示

テーブルを使用してトランザクションを記録したり、定期的に発生する数値データを格納したりする場合、合計や平均など、集計してそのデータを確認できると便利です。 Access では、データシートに集計行を追加できます。 集計行はデータシートの下部にある行で、累計の算出やその他の集計値を表示できます。

  1. 前に作成した [製品の小計] クエリを実行し、結果をデータシート ビューで開いたままにしておきます。
  2. [ホーム] タブの [集計] をクリックします。 データシートの下部に新しい行が表示され、最初の列に [ 合計 ] という単語が表示されます。
  3. データシートの最後の行にある [合計] という名前のセルをクリックします。
  4. 矢印をクリックすると、使用可能な集計関数が表示されます。 列にはテキスト データが含まれるため、選択肢は [なし ] と [カウント] の 2 つだけです。
  5. [ カウント] を選択します。 セルの内容が [ 合計 ] から列値のカウントに変わります。
  6. 隣接するセル (2 列目) をクリックします。 セルに矢印が表示されています。
  7. 矢印をクリックし、[ 合計] をクリックします。 このフィールドには、列の値の合計が表示されます。
  8. クエリはデータシート ビューで開いたままにしておきます。

ページの先頭へ

クロス集計クエリを作成する

ここで、製品の小計を確認しながら月別に集計して、各行に製品の小計が表示され、各列に月の製品の小計を表示するとします。 商品の小計や月間の商品小計を表示するには、クロス集計クエリを使用します。

Product Subtotals クエリをもう一度変更すると、クエリが製品の小計の行と月次の小計の列を返すことができます。

  1. [ホーム] タブの [表示] で [表示] をクリックし、[デザイン ビュー] をクリックします。
  2. [ クエリの設定 ] グループで、[ テーブルの追加] をクリックします。
  3. [ 受注] をダブルクリックし、[ 閉じる] をクリックします。
  4. [ クエリ デザイン] タブの [ クエリの種類 ] グループで、[ クロス集計] をクリックします。 デザイン グリッドでは、[ 表示 ] 行が非表示になり、[ クロス集計 ] 行が表示されます。
  5. デザイン グリッドの 3 列目で、[ フィールド ] 行を右クリックし、ショートカット メニューの [ ズーム ] をクリックします。 [ ズーム] ボックスが開きます。
  6. [ ズーム] ボックスに次のように入力するか貼り付けます: Month: "Month " & DatePart("m", [Order Date])
  7. [OK] をクリックします。
  8. [クロス集計] 行で、ドロップダウン リストから次の値を選択します。最初の列は [行見出し]、2 列目は [値]、3 列目は [列見出し] です。
  9. [ クエリ デザイン ] タブの [ 結果 ] グループで、[ 実行] をクリックします。 クエリが実行され、月別に集計された製品の小計が表示されます。
  10. クエリを保存するには、Ctrl キーを押しながら S キーを押します。
    クロス集計クエリの詳細については、「 クロス集計クエリを使用して集計データを読みやすくする」を参照してください。

ページの先頭へ

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

テーブル作成クエリを使用すると、他のテーブルに格納されているデータから新しいテーブルを作成できます。

Access を使用してレポートを準備するシカゴのビジネス パートナーに、シカゴの注文のデータを送信したいとします。 すべての注文データを送信するのではなく、送信するデータをシカゴの注文に固有のデータに制限する必要があります。

シカゴの注文データを含む選択クエリを作成し、次の手順に従って選択クエリを使用して新しいテーブルを作成できます。

  1. 前の例のサンプル データベースを開きます。
    テーブル作成クエリを実行するには、データベース コンテンツを有効にする必要がある場合があります。

    注

    データベースの有効化に関するメッセージがリボンの下に表示されている場合は、[**コンテンツを有効にする] をクリックします。**データベースが信頼できる場所に既にある場合は、メッセージ バーは表示されません。

  2. [作成] タブの [クエリ] で [クエリ デザイン] をクリックします。

  3. [ 注文の詳細 ] と [ 注文] をダブルクリックします。

  4. [ 受注 ] テーブルで [ 得意先 ID ] と [出荷先市区 町村] をダブルクリックして、これらのフィールドをデザイン グリッドに追加します。

  5. [ 受注明細 ] テーブルで、[ 受注 ID]、[ 製品 ID]、[ 数量]、[単 価]、[ 割引 ] をダブルクリックして、これらのフィールドをデザイン グリッドに追加します。

  6. デザイン グリッドの [出荷先の市区 町村] 列で、[ 表示 ] 行のボックスをオフにします。 [ 抽出条件 ] 行に「 兵庫県」 (一 重引用符を含む) と入力します。 クエリ結果を使用してテーブルを作成する前に、クエリ結果を確認してください。

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

  8. Ctrl + S キーを押してクエリを保存します。

  9. [ クエリ名] ボックスに「 Chicago Orders Query」と入力し、[ OK] をクリックします。

  10. [ホーム] タブの [表示] で [表示] をクリックし、[デザイン ビュー] をクリックします。

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

  12. [ テーブルの作成] ダイアログ ボックスの [テーブル名] ボックスに「 Chicago Orders」と入力し、[ OK] をクリックします。

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

  14. 確認ダイアログ ボックスで [ はい] をクリックすると、ナビゲーション ウィンドウに新しいテーブルが表示されます。

    注

    指定したのと同じ名前のテーブルが既に存在する場合は、クエリの実行前にそのテーブルが削除されます。

テーブル作成クエリの使用の詳細については、 テーブル作成クエリの作成を参照してください。

ページの先頭へ

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

追加クエリを使用すると、1 つ以上のテーブルからデータを取得し、そのデータを別のテーブルに追加できます。

たとえば、シカゴのビジネス アソシエイトと共有するためにテーブルを作成したが、そのアソシエイトがミルウォーキー地域のクライアントとも仕事をしていることに気付いたとします。 ミルウォーキー地域のデータを含む行をテーブルに追加してから、テーブルを同僚と共有する必要があります。 次の手順に従って、ミルウォーキーのエリア データを [兵庫県受注] テーブルに追加できます。

  1. 先ほど作成した "Chicago Orders Query" という名前のクエリをデザイン ビューで開きます。
  2. [ クエリ デザイン] タブの [ クエリの種類 ] グループで、[ 追加] をクリックします。 「 追加」(Append ) ダイアログボックスが開きます。
  3. [ 追加 ] ダイアログ ボックスで、[ テーブル名] ボックスの矢印をクリックし、ドロップダウン リストから [Chicago Orders ] を選択して、[ OK] をクリックします。
  4. デザイン グリッドの [出荷先の市区町村] 列の [ 抽出条件 ] 行で、「兵庫県」を削除し、「 ミルウォーキー」と入力します。
  5. [ 追加先 ] 行で、各列の適切なフィールドを選択します。
    この例では、[ 追加先 ] 行の値は [ フィールド] の行の値と一致する必要がありますが、追加クエリが機能するためには、これは必須ではありません。
  6. [ クエリ デザイン ] タブの [ 結果 ] グループで、[ 実行] をクリックします。

注

大量のデータを返すクエリを実行していると、クエリを元に戻すことはできないことを伝えるエラー メッセージが表示される場合があります。 メモリ セグメントの制限を 3 MB に拡張し、クエリが問題なく実行されるように試してみてください。

追加クエリの詳細については、「追加クエリを使ってレコードをテーブルに追加する」を参照してください。

ページの先頭へ

更新クエリを作成する

更新クエリを使用してテーブル内のデータを変更したり、更新クエリを使用して、更新する行を指定する条件を入力したりできます。 更新クエリを使用すると、更新を実行する前に更新されたデータを確認する機会が提供されます。

重要

アクション クエリを元に戻すことはできません。 更新クエリを使用して更新するテーブルのバックアップの作成を検討する必要があります。

前の例では、[受注] テーブルに行を追加しました。 "シカゴ注文" テーブルの "製品 ID" フィールドには数値の製品 ID が表示されます。 レポートでデータをより有用にするために、製品 ID を製品名に置き換えることができます。次の手順に従います。

  1. デザイン ビューで [兵庫県受注] テーブルを開きます。

  2. [製品 ID] 行で、[データ型] を [数値] から [文字列] に変更します。

  3. [Chicago Orders] テーブルを保存して閉じます。

  4. [作成] タブの [クエリ] で [クエリ デザイン] をクリックします。

  5. [Chicago Orders and Products] をダブルクリックします。

  6. [ クエリ デザイン] タブの [クエリの種類 ] グループで、[ 更新] をクリックします。

  7. デザイン グリッドの [ 並べ替え ] 行と [表示 ] 行が表示され、[ 更新先 ] 行が表示されます。

  8. [受注志] テーブルで、[商品 ID] をダブルクリックして、このフィールドをデザイン グリッドに追加します。

  9. デザイン グリッドの [製品 ID] 列の [更新先] 行に「[Products].[【製品名】

    ヒント

    更新クエリを使用すると、[レコードの更新] 行に空の文字列 ("") または NULL を指定することで、フィールド値を削除できます。

  10. [ 抽出条件 ] 行に次のように入力するか貼り付けます: [Product ID] Like ([Products].[ID])

  11. データシート ビューでクエリを表示することで、更新クエリによって変更される値を確認できます。

  12. [デザイン] タブで、[表示]>[データシート ビュー] をクリックします。 このクエリは、更新される製品 ID のリストを返します。

  13. [ クエリ デザイン] タブの [実行] をクリックします。
    "シカゴ受注" テーブルを開くと、[商品 ID] フィールドの数値が [商品] テーブルの商品名に置き換えられていることがわかります。

更新クエリの詳細については、「更新クエリを作成して実行する」をご覧ください。

ページの先頭へ

削除クエリを作成する

削除クエリを使用してテーブルからデータを削除したり、削除クエリを使用して、削除する行を指定する条件を入力したりできます。 削除クエリを使用すると、削除を実行する前に削除される行を確認できます。

たとえば、前の例の "Chicago Orders" テーブルをシカゴのビジネス アソシエイトに送信する準備をしているときに、一部の行に多数の空のフィールドが含まれていることに気付いたとします。 テーブルを送信する前に、これらの行を削除することにしました。 テーブルを開いて手動で行を削除することもできますが、削除する行が多数あり、削除する行の明確な基準がある場合は、削除クエリを使用すると役立つ場合があります。

次の手順で、[受注 ID] の値がない [シカゴ受注] テーブルの行を削除するクエリを使用できます。

  1. [作成] タブで [クエリ デザイン] をクリックします。
  2. [Chicago Orders] をダブルクリックします。
  3. [ クエリ デザイン] タブの [クエリの種類 ] グループで、[ 削除] をクリックします。 デザイン グリッドの [行 の並べ替え ] と [表示 ] が消え、[ 削除 ] 行が表示されます。
  4. [受注] テーブルで、[受注 ID] をダブルクリックしてグリッドに追加します。
  5. デザイン グリッドの [受注 ID] 列の [抽出条件 ] 行に「 Is Null」と入力します。
  6. [ クエリ デザイン ] タブの [ 結果 ] グループで、[ 実行] をクリックします。

削除クエリの詳細については、「 削除クエリを作成して実行する」を参照してください。

ページの先頭へ