1 つ以上のソースから特定のデータを選択する場合は、選択クエリを使用できます。 Select クエリを使用すると、必要なデータのみを取得したり、複数のデータ ソースのデータを結合したりするのにも役立ちます。 選択クエリでは、データ ソースとしてテーブルとその他の選択クエリを使用できます。 このトピックでは、選択クエリの概要を説明し、クエリ ウィザードまたはデザイン ビューで選択クエリを作成する手順について説明します。
Northwind サンプル データベースを使用してクエリのしくみの詳細については、「 クエリの概要」を参照してください。
この記事の内容
概要
データを使用する場合、1 つのテーブルのすべてのデータを使用することはほとんどありません。 たとえば、連絡先テーブルのデータを使用する場合、通常は 1 つの特定のレコード、または電話番号のみを確認する必要があります。 顧客情報と注文情報を組み合わせるなど、複数のテーブルのデータを結合する必要がある場合があります。 使用するデータを選択するには、選択クエリを使用します。
選択クエリは、データシート ビューに情報を表示するデータベース オブジェクトです。 クエリにはデータが保存されず、テーブルに格納されているデータが表示されます。 クエリには、1 つ以上のテーブル、他のクエリ、またはこれら 2 つの組み合わせのデータを表示できます。
クエリを使用する利点
クエリでできること:
見たいフィールドのデータだけを表示する。 テーブルを開くと、すべてのフィールドが表示されます。 クエリは、選択したフィールドを保存する便利な方法です。
注
クエリはデータをポイントするだけで、データを格納しません。 クエリを保存するときに、データのコピーが保存されるわけではありません。
いくつかのデータ ソースからのデータを結合する。 テーブルには通常、テーブルに保存されているデータのみが表示されます。 クエリを使用すれば、さまざまなソースのフィールドを選択し、情報の組み合わせを指定できます。
式をフィールドとして使用する。 たとえば、フィールドとして Date 関数を使用したり、フィールドで Format 関数を使用して、クエリ結果内でフィールドのデータがどのように書式設定されるかを制御したりできます。
指定した抽出条件を満たすレコードを表示する。 テーブルを開くと、すべてのレコードが表示されます。 クエリは、選択したレコードを保存する便利な方法です。
選択クエリ作成の基本的手順
選択クエリを作成するには、クエリ ウィザードを使用するか、クエリ デザイナーで操作します。 ウィザードの場合、一部のデザイン要素は使用できませんが、このような要素は後でデザイン ビューで追加できます。 2 つの方法はある程度異なっていますが、基本的な手順は本質的には同じです。
- データ ソースとして使用するテーブルまたはクエリを選択します。
- データ ソースから含めるフィールドを指定します。
- 必要に応じて、クエリから返されるレコードを制限する条件を指定します。
select クエリを作成したら、実行すると結果が表示されます。 選択クエリを実行するには、データシート ビューで開きます。 クエリを保存しておけば、フォーム、レポート、その他のクエリのデータ ソースなど、必要なときにいつでも再利用できます。
クエリ ウィザードを使用して選択クエリを作成する
クエリ ウィザードを使用し、選択クエリを自動的に作成できます。 このウィザードを使用する場合、クエリ デザインを細かく設定することはできませんが、ウィザードを使用しない場合に比べて、通常はクエリが短時間で作成されます。 また、ウィザードの場合、設計上の単純な間違いが検出され、別の操作を実行するように求められることがあります。
始める前に
互いに関連しないデータ ソースのフィールドを使用する場合、クエリ ウィザードでは、リレーションシップを作成するかどうかについて確認が求められます。 リレーションシップ ウィンドウが自動的に開きますが、リレーションシップを編集する場合、ウィザードを再起動する必要があります。 そのため、ウィザードを実行する前に、クエリで必要となるリレーションシップがあればそれを作成することを検討してください。
テーブルのリレーションシップの作成の詳細については、「 テーブルのリレーションシップの概要」を参照してください。
クエリ ウィザードを使用する
[ 作成 ] タブの [クエリ ] グループで、[ クエリ ウィザード] を選択します。
[ 新しいクエリ] ダイアログ ボックスで、[ 単純なクエリ ウィザード] を選択し、[ OK] を選択します。
次に、フィールドを追加します。 最大 32 個のテーブルまたはクエリから最大 255 個のフィールドを追加できます。
フィールドごとに、以下の手順を実行します。[ テーブル/クエリ] で、フィールドを含むテーブルまたはクエリを選択します。
[使用可能なフィールド] で、フィールドをダブルクリックし、[選択したフィールド] リストに追加します。 すべてのフィールドをクエリに追加する場合は、右二重矢印 (>>) の付いたボタンを選択します。
必要なフィールドをすべて追加したら、[ 次へ] を選択します。
数値フィールド (数値データを含むフィールド) を追加しない場合は、手順 9 に進みます。 数値フィールドを追加した場合、クエリで詳細を取得するか集計データを取得するかについて確認を求められます。
次のいずれかの操作を行います。個々のレコードを表示する場合は、[ 詳細] を選択し、[ 次へ] を選択します。 手順 9 に進みます。
平均値などの集計された数値データを表示する場合は、[ 概要] を選択してから、[ 概要オプション] を選択します。
[集計のオプション] ダイアログ ボックスで、集計するフィールドとデータの集計方法を指定します。 数値フィールドのみが表示されます。
数値フィールドごとに、次の関数の 1 つを選択します。- Sum フィールドのすべての値の合計が返されます。
- Avg フィールドの値の平均値が返されます。
- Min フィールドで最も小さい値が返されます。
- Max フィールドで最も大きい値が返されます。
クエリの結果にデータ ソースのレコード数を含める場合、適切な ["データ ソース名" のレコードをカウントする] チェック ボックスを選択します。
[ OK ] を選択して [概要オプション] ダイアログ ボックスを閉じます。
クエリに日付/時刻フィールドを追加していない場合は、手順 9 に進みます。 日付/時刻フィールドをクエリに追加した場合、クエリ ウィザードでは、日付値をグループ化する方法について確認が求められます。 たとえば、数値フィールド ("Price") と日付/時刻フィールド ("Transaction_Time") をクエリに追加した後、[集計のオプション] ダイアログ ボックスで、数値フィールド "Price" の平均値を表示するように指定します。 日付/時刻フィールドを含めたため、一意の日付/時刻値、日、月、四半期、年ごとに集計値を計算できます。
日付/時刻の値のグループ化に使用する期間を選択し、[ 次へ] を選択します。
注
デザイン ビューでは式を使用し、任意の期間別にグループ化できますが、ウィザードの場合、選択肢が限定されています。
ウィザードの最後のページで、クエリにタイトルを付け、クエリを開くか変更するかを指定して、[ 完了] を選択します。
クエリを開くと、選択したデータがデータシート ビューで表示されます。 クエリを変更する場合、クエリがデザイン ビューで開きます。
デザイン ビューで作業し、クエリを作成する
デザイン ビューを使用し、選択クエリを手動で作成できます。 デザイン ビューを使用すると、クエリ デザインの詳細をより詳細に制御できますが、設計ミスを簡単に行うことができ、ウィザードを使用するよりも時間がかかる可能性があります。
クエリを作成する
- 手順 1:データ ソースを追加する
- 手順 2: 関連するデータ ソースを結合する
- 手順 3:出力フィールドを追加する
- 手順 4:抽出条件を指定する
- 手順 5データを集計する
- 手順 6: 結果を表示する
手順 1: データ ソースを追加する
デザイン ビューを使用してデータ ソースを追加する場合は、個別の手順でデータ ソースとフィールドを追加します。 ただし、必要であれば、後でデータ ソースを追加できます。
[ 作成 ] タブの [クエリ ] グループで、[ クエリ デザイン] を選択します。
使用する各データ ソースをダブルクリックするか、各データ ソースを選択して、[ 追加] を選びます。
自動結合
データ ソースを追加するとき、ソース間に既にリレーションシップが定義されている場合、そのリレーションシップは結合としてクエリに自動的に追加されます。 結合により、関連ソースのデータの組み合わせ方法が指定されます。 Access では、2 つのテーブルに互換性のあるデータ型を持ち、一方のフィールドが主キーである場合にも、それらのテーブル間の結合が自動的に作成されます。
場合によっては、Access で自動作成された結合を自分で調整します。 Access では、結合が表す関係に基づき、作成する結合の種類が決定されます。 Access によって結合が作成されていても、定義されたリレーションシップがない場合は、Access によって内部結合が作成されます。
Access でデータ ソースの追加時に正しい結合が自動的に作成される場合、手順 3:出力フィールドを追加するに進むことができます。
同じデータ ソースを数回使用する
場合によっては、同じテーブルまたはクエリの 2 つのコピーを結合する必要があります (自己結合と呼ばれます)、結合されたフィールドに一致する値がある場合に、同じテーブルのレコードが結合されます。 たとえば、従業員テーブルで、各従業員レコードの ReportsTo フィールドに名前の代わりに上司の ID が表示されているとします。 代わりに自己結合を使用して、各従業員のレコードに上司の名前を表示することができます。
データ ソースの 2 回目の追加が行われると、Access は、2 番目のインスタンスの名前に _1 を付加します。 たとえば、Employees テーブルを 2 回追加した場合、2 番目のインスタンスの名前は Employees_1 となります。
手順 2: 関連するデータ ソースを結合する
クエリに追加するデータ ソースに既にリレーションシップがある場合、リレーションシップごとに内部結合が自動的に作成されます。 参照整合性が適用されている場合、Access では、一対多リレーションシップの "一" 側にあるテーブルを示す結合行の上に "1" が表示され、どのテーブルが "多" 側にあるかを示すために無限大記号 (∞) が表示されます。
クエリにクエリを追加するとき、クエリ間にリレーションシップが作成されていない場合、クエリ間で、またはクエリと関連していないテーブルの間で結合が自動作成されることはありません。 データ ソースの追加時、結合が自動作成されない場合、通常は自分で追加する必要があります。 他のデータ ソースに結合されていないデータ ソースは、クエリ結果で問題を引き起こす可能性があります。
また、結合の種類を内部結合から外部結合に変更して、クエリに含まれるレコードを増やすこともできます。
結合を追加する
結合を追加するには、1 つのデータ ソースのフィールドを、別のデータ ソースの対応するフィールドまでドラッグします。
2 つのフィールド間に線が引かれ、結合が作成されたことが示されます。
結合を変更する
変更対象の結合をダブルクリックします。
[結合プロパティ] ダイアログ ボックスが表示されます。
[結合プロパティ] ダイアログ ボックスで 3 つのオプションを確認します。
使用するオプションをクリックし、[OK] をクリックします。
結合に問題がなければ、出力フィールドを追加します。出力フィールドとは、クエリ結果に表示するデータが含まれるフィールドです。
手順 3: 出力フィールドを追加する
手順 1 で追加したデータ ソースからフィールドを簡単に追加できます。
フィールドを追加するには、クエリ デザインの上ウィンドウにあるデータ ソースのフィールドを下ウィンドウにあるデザイン グリッドの [フィールド] 行までドラッグします。
この方法でフィールドを追加すると、デザイン グリッドの [テーブル] 行に自動入力され、フィールドのデータ ソースが反映されます。ヒント
クエリ デザイン グリッドの [フィールド] 行にすべてのフィールドを簡単に追加するには、上ウィンドウにあるテーブルまたはクエリの名前をダブルクリックしてそのソースの全フィールドを強調表示し、デザイン グリッドまで同時にドラッグします。
式を出力フィールドとして使用する
計算を実行したり、関数を使用してクエリ出力を生成したりする場合は、式を出力フィールドとして使用できます。 式では、クエリ データ ソースからのデータや関数 (Format や InStr など) を使用できるほか、定数や算術演算子を含めることもできます。
クエリ デザイン グリッドの空白の列で、[フィールド] 行を右クリックし、ショートカット メニューの [ズーム] をクリックします。
[ズーム] ボックスに式を入力するか、貼り付けます。 式の出力で使用する名前を式の先頭に追加し、その後にコロンを続けます。 たとえば、式に "Last updated" というラベルを付けるには、式を Last updated: から始まる名前にします。
注
式を使用すれば、さまざまなことが可能になります。 式に関する詳しい説明については、この記事では取り上げません。 式の作成方法については、「Build an expression」 (式を作成する) を参照してください。
手順 4: 抽出条件を指定する
この手順は省略可能です。
抽出条件を使用すれば、クエリで返されるレコードを絞り込むことができます。指定した条件を満たすフィールド値が返されます。
出力フィールドの抽出条件を指定する
- クエリ デザイン グリッドで、制限する値を含むフィールドの [抽出条件 ] 行に、フィールド値が結果に含まれるために必要な式を入力します。 たとえば、クエリを制限して、"市区町村" というフィールドの値が Las Vegas であるフィールドのみにレコードを作成する場合は、そのフィールドの下の [抽出条件] 行に「Las Vegas」と入力します。
「クエリの抽出条件の例」をご覧ください。さまざまなデータ型のクエリ抽出条件の例がたくさんあります。 - [抽出条件] 行の下にある [または] 行に別の抽出条件を指定します。
別の抽出条件を指定する場合、一覧にある条件のいずれかをフィールド値が満たせば、クエリ結果に含まれます。
複数のフィールドの抽出条件
複数のフィールドで抽出条件を使用できます。 その場合、[抽出条件] 行または [または] 行のすべての条件が真にならないとレコードは含まれません。
出力を必要としないフィールドを使用し、抽出条件を指定する
クエリ デザインにフィールドを追加し、そのフィールドのデータをクエリ出力に含めないようにできます。 表示しないフィールドの値を使用してクエリの結果を絞り込む場合にこれを行います。
- デザイン グリッドにフィールドを追加します。
- フィールドの [表示] 行で、チェック ボックスの選択を解除します。
- 出力フィールドの場合と同様に、抽出条件を指定します。
手順 5:データを集計する
この手順は省略可能です。
特に対象のデータが数値である場合は、データを集計することが必要な場合があります。 たとえば、平均価格または売上合計を表示する場合を例にとります。
クエリでデータを集計するには、[集計] 行を使用します。 既定では、[集計] 行はデザイン ビューに表示されません。
-
クエリをデザイン ビューで開いた状態で、[クエリ デザイン] タブの [表示/非表示] グループで [合計] をクリックします。
Access では、クエリ デザイン グリッドに [集計] 行が表示されません。 - 集計するフィールドごとに、[集計] 行で使用する関数を一覧から選択します。 使用できる関数は、フィールドのデータ型によって異なります。
クエリの集計行機能の詳細については、「 集計行を使用してデータシートに列の合計を表示する」の記事を参照してください。
手順 6: 結果を表示する
クエリの結果を表示するには、[ クエリ デザイン ] タブの [実行] をクリックします。 データシート ビューにクエリの結果が表示されます。
クエリをさらに変更するには、[ホーム] >[表示] >[デザイン ビュー] をクリックし、デザイン ビューに切り替えます。
フィールド、式、抽出条件を変更し、必要なデータが返されるまでクエリを再実行します。