クエリを使用すると、Access データベースのデータの表示、追加、削除、変更が容易になります。 クエリを使用するその他の理由:
-
特定の条件 (条件) をフィルター処理して、特定の迅速なデータを検索する
-
データの計算または集計
-
最新のデータを定期的に確認するなど、データ管理タスクを自動化します。
クエリは、データの検索と操作に役立ちます
適切に設計されたデータベースでは、フォームまたはレポートで提供するデータは、通常、複数のテーブルに散らばって存在しています。 クエリは、さまざまなテーブルから情報を取得し、フォームまたはレポートに表示するために組み立てることができます。 クエリには、データベースからのデータ結果の要求、またはデータに対するアクションの要求、またはその両方を指定できます。 クエリを使用すると、簡単な質問に対する回答を得ることができます。計算の実行、異なるテーブルからのデータの結合、データベースからのデータの追加、変更、または削除を行うことができます。 クエリは非常に汎用性が高いため、さまざまな種類のクエリがあり、タスクに基づいてクエリの種類を作成します。
主なクエリの種類 |
用途 |
---|---|
選択 |
テーブルからのデータの取得、計算を実行します。 |
アクション |
データの追加、変更、削除を行います。 各タスクには特定の種類のアクション クエリが含まれています。 |
選択クエリを作成する
テーブル内の特定のフィールドからのデータのみを確認する場合、または複数のテーブルのデータを同時に確認する場合、または特定の条件に基づいてデータを表示する場合は、選択したクエリの種類が選択できます。 詳細については、「 単純な選択クエリを作成する」を参照してください。
選択したフィールドからデータを確認する
たとえば、データベースに製品に関する多くの情報を含むテーブルがあり、製品とその価格の一覧を確認する場合は、製品名とそれぞれの価格だけを返す選択クエリを作成する方法を次に示します。
-
データベースを開き、[ 作成 ] タブで [ クエリ デザイン] をクリックします。
-
[ テーブル ] タブで、[ 製品 ] テーブルをダブルクリックします。
-
[製品] テーブルで、[製品名] フィールドと [表示価格] フィールドがあるとします。 [製品名] と [表示価格] をダブルクリックして、これらのフィールドを デザイン グリッドクエリに追加します。
-
[ クエリ デザイン ] タブで、[ 実行] をクリックします。 クエリが実行され、製品とその価格の一覧が表示されます。
複数の関連テーブルのデータを同時に確認する
たとえば、食品を販売する店舗のデータベースがあり、特定の都市に住む顧客の注文を確認する場合です。 注文に関するデータと顧客に関するデータは、それぞれ Customers と Orders という名前の 2 つのテーブルに格納されるとします。 各テーブルに顧客 ID フィールドがある場合は、2 つのテーブル間の 一対多リレーションシップ の基礎を形成します。 次の手順を使用して、特定の都市 (たとえばラスベガス) の顧客の注文を返すクエリを作成できます。
-
データベースを開きます。 [作成] タブの [クエリ] で [クエリ デザイン] をクリックします。
-
[ テーブル ] タブで、[ 顧客 と 注文] をダブルクリックします。
Customers テーブルの ID フィールドと Orders テーブルの Customer ID フィールドを接続する行 (結合と呼ばれます) をメモします。 この行は、2 つのテーブル間のリレーションシップを示しています。
-
[顧客] テーブルで、[ 会社 ] と [ 市区町村 ] をダブルクリックして、これらのフィールドをクエリ デザイン グリッドに追加します。
-
クエリ デザイン グリッドの [市区町村] 列で、[表示] 行の [チェック] ボックスをオフにします。
-
[市区町村] 列の [抽出条件] 行に「Las Vegas」と入力します。
[チェック表示] ボックスをオフにすると、クエリで結果に市区町村が表示されなくなります。[抽出条件] 行に「Las Vegas」と入力すると、[City] フィールドの値が Las Vegas であるレコードのみを表示するように指定されます。 この場合、クエリはラスベガスにある顧客のみを返します。 条件でフィールドを使用するためにフィールドを表示する必要はありません。
-
[受注] テーブルで、[ 注文 ID ] と [ 受注日 ] をダブルクリックして、これらのフィールドをクエリ デザイン グリッドの次の 2 列に追加します。
-
[ クエリ デザイン ] タブの [ 結果 ] グループで、[ 実行] をクリックします。 クエリが実行され、ラスベガスの顧客の注文の一覧が表示されます。
-
クエリを保存するには、Ctrl キーを押しながら S キーを押します。
パラメーター クエリを作成する
特定のクエリのバリエーションを頻繁に実行する場合は、パラメーター クエリの使用を検討してください。 パラメーター クエリを実行すると、クエリによってフィールド値の入力が求められます。その後、指定した値を使用してクエリの条件を作成します。
前の例から続けて、ラスベガスにある顧客の注文を返す選択クエリを作成する方法を学習しました。クエリを実行するたびに、選択クエリを変更して都市を指定するように求めることができます。 続くには、前の例で作成したデータベースを開きます。
-
ナビゲーション ウィンドウで、(前のセクションで作成した) [ 都市別の注文 ] という名前のクエリを右クリックし、ショートカット メニューの [ デザイン ビュー ] をクリックします。
-
クエリ デザイン グリッドの [市区町村] 列の [ 抽出条件 ] 行で 、Las Vegas を削除し 、「For what city?」と入力します。
文字列 [For what city?] はパラメーター プロンプトです。 角かっこは、クエリで入力を求める必要があることを示し、テキスト (この場合は " 市区町村の場合") は、パラメーター プロンプトに表示される質問です。
注: いずれの期間も (.) も感嘆符 (!) をパラメーター プロンプトのテキストとして使用できます。
-
[市区町村] 列の [表示] 行の [チェック] ボックスを選択すると、クエリ結果に市区町村が表示されます。
-
[ クエリ デザイン ] タブの [ 結果 ] グループで、[ 実行] をクリックします。 クエリでは、City の値を入力するように求められます。
-
「 ニューヨーク」と入力し、Enter キーを押してニューヨークの顧客の注文を確認します。
指定できる値がわからない場合はどうすればよいですか? プロンプトの一部としてワイルドカード文字を使用できます。
-
[ホーム] タブの [表示] で [表示] をクリックし、[デザイン ビュー] をクリックします。
-
クエリ デザイン グリッドの [市区町村] 列の [抽出条件] 行に、「Like [For what city?] 」と入力します。&"*"。
このパラメーター プロンプトでは、Like キーワード (keyword)、ampersand (&)、および引用符で囲まれたアスタリスク (*) を使用すると、ユーザーはワイルドカード文字を含む文字の組み合わせを入力して、さまざまな結果を返します。 たとえば、ユーザーが *と入力した場合、クエリはすべての都市を返します。ユーザーが L を入力すると、クエリは文字 "L;" で始まるすべての都市を返し、ユーザーが *s* と入力した場合、クエリは文字 "s" を含むすべての都市を返します。
-
[ クエリ デザイン ] タブの [ 結果 ] グループで [ 実行] をクリックし、クエリ プロンプトで「 新規」と入力し、Enter キーを押します。
クエリが実行され、ニューヨークの顧客の注文が表示されます。
パラメーターのデータ型を指定する
パラメーターでどのようなデータ型を受け入れるようにするかを指定することもできます。 どのパラメーターにもデータ型を設定できますが、特に、数値、通貨、日付/時刻のデータに対してデータ型を設定することが重要です。 パラメーターが受け入れるデータ型を指定した場合、ユーザーが間違ったデータ型を入力すると (通貨が必要な場合にテキストを入力するなど)、わかりやすいエラー メッセージが表示されます。
テキスト データを受け入れるようにパラメーターが設定されている場合、入力はすべてテキストとして解釈され、エラー メッセージは表示されません。
クエリ内のパラメーターのデータ型を指定するには、次の手順を使用します。
-
デザイン ビューでクエリを開いた状態で、[ クエリ デザイン ] タブの [ 表示/非表示 ] グループで [ パラメーター] をクリックします。
-
[クエリ パラメーター] ダイアログ ボックスの [パラメーター] 列に、データ型を指定する各パラメーターのプロンプトを入力します。 各パラメーターが、クエリ デザイン グリッドの [抽出条件] 行で使用するプロンプトと一致していることをご確認ください。
-
[データ型] 列で、各パラメーターのデータ型を選びます。
詳細については、「クエリの 実行時にパラメーターを使用して入力を要求する」を参照してください。
合計クエリを作成する
データシートの [集計] 行は非常に便利ですが、より複雑な質問の場合は、集計クエリを使用します。 集計クエリは、製品あたりの売上の合計を表示する場合など、データをグループ化して集計できる選択クエリです。 集計クエリでは、Sum 関数 (集計関数) を使用して、製品あたりの合計売上を確認できます。
前の例で作成した製品小計クエリを、製品別に集計するように変更するには、次の手順を使用します。
-
[ ホーム ] タブで、[ 表示 ] > [デザイン ビュー] をクリックします。
製品小計クエリがデザイン ビューで開きます。
-
[ クエリ デザイン ] タブの [ 表示/非表示 ] グループで、[ 合計] をクリックします。
[合計] 行がクエリ デザイン グリッドに表示されます。
注: 名前は似ていますが、デザイン グリッドの [合計] 行とデータシートの [合計] 行は同じではありません。
-
フィールド値でグループ化するには、デザイン グリッドの [合計] 行を使用します。
-
集計クエリの結果にデータシートの [合計 ] 行を追加できます。
-
デザイン グリッドで [合計] 行を使用する場合は、フィールドごとに集計関数を選択する必要があります。 フィールドに対して計算を実行しない場合は、フィールドでグループ化できます。
-
デザイン グリッドの 2 番目の列の [合計 ] 行で、ドロップダウン リストから [合計 ] を選択します。
-
[ クエリ デザイン ] タブの [ 結果 ] グループで、[ 実行] をクリックします。 クエリが実行され、小計を含む製品の一覧が表示されます。
-
クエリを保存するには、Ctrl キーを押しながら S キーを押します。 クエリは開いたままにします。
詳細については、「 Totals 行を使用してデータシートに列の合計を表示する」を参照してください。
データに基づいて計算を行う
通常、同じデータベース内のデータに基づいている場合でも、小計などの計算値を格納するためにテーブルを使用しません。計算値は、変更に基づく値の場合は古くなる可能性があるためです。 たとえば、誰かの年齢をテーブルに格納することはしません。これは、毎年値を更新する必要があるためです。代わりに、ユーザーの生年月日を格納し、クエリを使用してユーザーの年齢を計算します。
たとえば、販売する一部の製品のデータベースがある場合などです。 このデータベースには、Orders Details という名前のテーブルがあり、各製品の価格や数量などのフィールドの製品に関する情報が含まれています。 小計を計算するには、クエリを使用して、各製品の数量とその製品の単価を乗算し、各製品の数量をその製品の単価と割引で乗算し、合計単価から合計割引を減算します。 前の例でサンプル データベースを作成した場合は、それを開き、次の手順に従います。
-
[作成] タブで [クエリ デザイン] をクリックします。
-
[ テーブル ] タブで、[注文の 詳細] をダブルクリックします。
-
[Order Details]\(注文の詳細\) テーブルで、[ 製品 ID ] をダブルクリックして、このフィールドをクエリ デザイン グリッドの最初の列に追加します。
-
グリッドの 2 番目の列で、[ フィールド ] 行を右クリックし、ショートカット メニューの [ズーム ] をクリックします。
-
[ズーム] ボックスに、小計: ([数量]*[単価])-([数量]*[単価]*[割引]) を入力または貼り付けます。
-
[OK] をクリックします。
-
[ クエリ デザイン ] タブで、[ 実行] をクリックします。 クエリが実行され、注文ごとに製品と小計の一覧が表示されます。
-
Ctrl + S キーを押してクエリを保存し、クエリに Product Subtotals という名前を付けます。
詳細については、「 Totals 行を使用してデータシートに列の合計を表示する」を参照してください。
集計データまたは集計データを表示する
テーブルを使用してトランザクションを記録したり、定期的に発生する数値データを格納したりする場合は、合計や平均などの集計でそのデータを確認できると便利です。 Access では、Totals 行を データシートに追加できます。 合計行は、データシートの下部にある行であり、実行中の合計またはその他の集計値を表示できます。
-
前に作成した Product 小計クエリを実行し、結果は データシート ビューで開いたままにします。
-
[ホーム] タブの [集計] をクリックします。 データシートの下部に新しい行が表示され、最初の列に Total という単語が表示されます。
-
Total という名前のデータシートの最後の行のセルをクリック します。
-
矢印をクリックして、使用可能な集計関数を表示します。 列にはテキスト データが含まれているため、 選択肢は None と Count の 2 つだけです。
-
[ カウント] を選択します。 セルの内容が Total から列値のカウントに変わります。
-
隣接するセル (2 番目の列) をクリックします。 セルに矢印が表示されることに注意してください。
-
矢印をクリックし、[ 合計] をクリックします。 フィールドには、列値の合計が表示されます。
-
データシート ビューでクエリを開いたままにします。
クロス集計クエリを作成する
次に、製品小計を確認するが、月単位で集計して、各行に製品の小計が表示され、各列に 1 か月間の製品小計が表示されるようにするとします。 製品の小計を表示し、1 か月間の製品小計を表示するには、 クロス集計クエリを使用します。
製品小計クエリを再度変更して、製品小計の行と月次小計の列を返すことができます。
-
[ホーム] タブの [表示] で [表示] をクリックし、[デザイン ビュー] をクリックします。
-
[ クエリ設定] グループで 、[ テーブルの追加] をクリックします。
-
[ 注文] をダブルクリックし、[ 閉じる] をクリックします。
-
[ クエリ デザイン ] タブの [ クエリの種類 ] グループで、[ クロス集計] をクリックします。 デザイン グリッドでは、[ 表示 ] 行が非表示になり、 クロス集計 行が表示されます。
-
デザイン グリッドの 3 番目の列で、[ フィールド ] 行を右クリックし、ショートカット メニューの [ズーム ] をクリックします。 [ ズーム ] ボックスが開きます。
-
[ズーム] ボックスに、"Month" & DatePart("m", [Order Date]) を入力または貼り付けます。
-
[OK] をクリックします。
-
[クロス集計] 行で、ドロップダウン リストから次の値を選択します。最初の列の行見出し、2 番目の列の値、3 番目の列の列見出しです。
-
[ クエリ デザイン ] タブの [ 結果 ] グループで、[ 実行] をクリックします。 クエリが実行され、月別に集計された製品小計が表示されます。
-
クエリを保存するには、Ctrl キーを押しながら S キーを押します。
クロス集計クエリの詳細については、「クロス集計クエリ を使用してサマリー データを読みやすくする」を参照してください。
テーブル作成クエリを作成する
テーブル作成クエリを使用して、他のテーブルに格納されているデータから新しいテーブルを作成できます。
たとえば、Access を使用してレポートを準備するシカゴのビジネス パートナーに、シカゴ注文のデータを送信するとします。 すべての注文データを送信する代わりに、シカゴ注文に固有のデータに送信するデータを制限する必要があります。
シカゴの注文データを含む選択クエリを作成し、次の手順を使用して select クエリを使用して新しいテーブルを作成できます。
-
前の例のサンプル データベースを開きます。
テーブル作成クエリを実行するには、データベース コンテンツを有効にする必要がある場合があります。
注: データベースの有効化に関するメッセージがリボンの下に表示される場合は、[コンテンツの有効化] をクリックします。データベースが既に信頼できる場所にある場合、メッセージ バーは表示されません。
-
[作成] タブの [クエリ] で [クエリ デザイン] をクリックします。
-
[注文の 詳細 ] と [注文] をダブルクリック します。
-
[受注] テーブル で 、[ 顧客 ID ] と [ Ship City ] をダブルクリックして、これらのフィールドをデザイン グリッドに追加します。
-
[ Order Details]\(注文の詳細 \) テーブルで、[ 注文 ID]、[ 製品 ID]、[ 数量]、[ 単価]、[ 割引 ] をダブルクリックして、これらのフィールドをデザイン グリッドに追加します。
-
デザイン グリッドの [Ship City ] 列で、[ 表示 ] 行のボックスをオフにします。 [ 抽出条件 ] 行に 「シカゴ」と 入力します (単一引用符を含めます)。 クエリ結果を使用してテーブルを作成する前に、クエリ結果を確認します。
-
[ クエリ デザイン ] タブの [ 結果 ] グループで、[ 実行] をクリックします。
-
Ctrl + S キーを押してクエリを保存します。
-
[ クエリ名 ] ボックスに「 シカゴ注文クエリ」と入力し、[ OK] をクリックします。
-
[ホーム] タブの [表示] で [表示] をクリックし、[デザイン ビュー] をクリックします。
-
[ クエリ デザイン ] タブの [ クエリの種類 ] グループで、[ テーブルの作成] をクリックします。
-
[ テーブルの作成 ] ダイアログ ボックスの [ テーブル名 ] ボックスに「 シカゴ注文」と入力し、[OK] をクリック します。
-
[ クエリ デザイン ] タブの [ 結果 ] グループで、[ 実行] をクリックします。
-
確認ダイアログ ボックスで [ はい] をクリックし、ナビゲーション ウィンドウに新しいテーブルが表示されます。
注: 指定した名前のテーブルが既にある場合は、クエリを実行する前にそのテーブルが削除されます。
テーブル作成クエリの使用の詳細については、「テーブル作成 クエリの作成」を参照してください。
追加クエリを使用してテーブルから他のテーブルにレコードを追加する
追加クエリを使用して、1 つ以上のテーブルからデータを取得し、そのデータを別のテーブルに追加できます。
たとえば、シカゴのビジネス アソシエイトと共有するテーブルを作成したが、そのアソシエイトがミルウォーキー地域のクライアントとも連携していることを認識しているとします。 関連付け先とテーブルを共有する前に、Milwaukee エリア データを含む行をテーブルに追加する必要があります。 次の手順を使用して、Milwaukee エリア データをシカゴ注文テーブルに追加できます。
-
先ほど作成した "シカゴ注文クエリ" という名前のクエリをデザイン ビューで開きます。
-
[ クエリ デザイン ] タブの [ クエリの種類 ] グループで、[ 追加] をクリックします。 [ 追加] ダイアログ ボックスが開きます。
-
[ 追加 ] ダイアログ ボックスの [ テーブル名 ] ボックスの矢印をクリックし、ドロップダウン リストから [ シカゴの注文 ] を選択し、[ OK] をクリックします。
-
デザイン グリッドの [Ship City] 列の [抽出条件 ] 行で 、[シカゴ] を削除し、「 Milwaukee」と入力します。
-
[ 追加する] 行で、各列の適切なフィールドを選択します。
この例では、[ 追加先 ] 行の値は Field 行の値と一致する必要がありますが、追加クエリを機能させるには必須ではありません。
-
[ クエリ デザイン ] タブの [ 結果 ] グループで、[ 実行] をクリックします。
注: 大量のデータを返すクエリを実行していると、クエリを元に戻すことはできないことを伝えるエラー メッセージが表示される場合があります。 メモリ セグメントの制限を 3 MB に拡張し、クエリが問題なく実行されるように試してみてください。
追加クエリの詳細については、「追加クエリを使ってレコードをテーブルに追加する」を参照してください。
更新クエリを作成する
更新クエリを使用してテーブル内のデータを変更できます。また、更新クエリを使用して条件を入力して、更新する必要がある行を指定できます。 更新クエリを使用すると、更新を実行する前に更新されたデータを確認できます。
重要: アクション クエリを元に戻すことはできません。 更新クエリを使用して、更新するテーブルのバックアップを作成することを検討する必要があります。
前の例では、シカゴ注文テーブルに行を追加しました。 [シカゴ注文] テーブルの [製品 ID] フィールドに、数値の製品 ID が表示されます。 レポートでデータをより便利にするには、製品 ID を製品名に置き換えるには、次の手順に従います。
-
デザイン ビューでシカゴ注文テーブルを開きます。
-
[製品 ID] 行で、[データ型] を [数値 ] から [テキスト] に変更します。
-
シカゴ注文テーブルを保存して閉じます。
-
[作成] タブの [クエリ] で [クエリ デザイン] をクリックします。
-
[シカゴの注文と製品] をダブルクリックします。
-
[ クエリ デザイン ] タブの [ クエリの種類 ] グループで、[ 更新] をクリックします。
-
デザイン グリッドの [行の 並べ替え] と [表示 ] が消え、[ 更新 ] 行が表示されます。
-
[ シカゴ注文 ] テーブルで、[ 製品 ID ] をダブルクリックして、このフィールドをデザイン グリッドに追加します。
-
デザイン グリッドの [製品 ID] 列の [更新対象] 行に、次のように入力するか貼り付けます。 製品名]
ヒント: 更新クエリを使用すると、[更新対象] 行で空の文字列 ("") または NULL を使用してフィールド値 を 削除できます。
-
[ 抽出条件 ] 行に、次のように入力するか貼り付けます。 [Product ID] Like ([Products].[ID])
-
データシート ビューでクエリを表示することで、更新クエリによって変更される値を確認できます。
-
[デザイン] タブで、[表示]、[データシート ビュー] の順にクリックします。 クエリは、更新される製品 ID の一覧を返します。
-
[ クエリ デザイン ] タブで、[ 実行] をクリックします。
シカゴ注文テーブルを開くと、[製品 ID] フィールドの数値が Products テーブルの製品名に置き換えられていることがわかります。
更新クエリの詳細については、「更新クエリを作成して実行する」をご覧ください。
削除クエリを作成する
削除クエリを使用してテーブルからデータを削除し、削除クエリを使用して条件を入力して、削除する必要がある行を指定できます。 削除クエリを使用すると、削除を実行する前に削除される行を確認できます。
たとえば、前の例のシカゴ注文表をシカゴのビジネス・アソシエイトに送信する準備をしているときに、一部の行に多数の空のフィールドが含まれていることがわかります。 テーブルを送信する前に、これらの行を削除することにしました。 テーブルを開いて行を手動で削除するだけでかまいませんが、削除する行が多く、削除する行の基準が明確な場合は、削除クエリを使用すると便利な場合があります。
クエリを使用すると、次の手順を使用して、シカゴ注文テーブル内の Order ID の値を持たない行を削除できます。
-
[作成] タブで [クエリ デザイン] をクリックします。
-
[シカゴ注文] をダブルクリックします。
-
[ クエリ デザイン ] タブの [ クエリの種類 ] グループで、[削除] をクリック します。 デザイン グリッドの [行の 並べ替え] と [表示 ] が消え、[ 削除 ] 行が表示されます。
-
[ シカゴ注文 ] テーブルで、[ 注文 ID ] をダブルクリックしてグリッドに追加します。
-
デザイン グリッドの [Order ID] 列の [ 抽出条件 ] 行に、「 Is Null」と入力します。
-
[ クエリ デザイン ] タブの [ 結果 ] グループで、[ 実行] をクリックします。
削除クエリの詳細については、「削除 クエリを作成して実行する」を参照してください。