トップ > スキル : アプリケーション > Access(アクセス) > 基礎編(各オブジェクトの作成)
顧客情報クエリの作成1
テーブルを作成すれば、他のオブジェクトを作成することができます。入力しやすい画面を作りたいのであれば「フォーム」を作り、顧客情報の一覧表を印刷したいのであれば「レポート」を作ります。
ここでは、テーブルを加工して、欲しいデータを検索できるようなクエリを作成します。クエリは、既存のテーブルを見やすくするオブジェクトとしても利用されます。
クエリの種類
クエリにはいくつかの種類があります。大きく分けると「選択クエリ」「アクションクエリ」「その他のクエリ」です。
◆ 選択クエリ
データを取り出すだけのクエリです。テーブルなどのデータを抽出したり、並べ替えたり、計算させることもできます。また、選択クエリには以下のような種類があります。
選択クエリ | データの抽出、並べ替えを行う |
集計クエリ | グループ別の集計を行う |
重複クエリ | 重複したレコードのみを抽出する |
不一致クエリ | 2つのテーブルを比較して、一致しないレコードのみを抽出する |
パラメータクエリ | クエリを実行するとボックスが表示され、そこに入力したデータを表示する |
クロス集計クエリ | 縦横(列と行のレコード)の集計を行う |
◆ アクションクエリ
クエリを実行することで、直接テーブルのデータを一括で修正したり、テーブル内にデータを追加、削除したりすることができます。
アクションクエリには以下のような種類があります。
テーブル作成クエリ | 新しいテーブルを作成できる |
更新クエリ | データの一部を一括で更新できる |
追加クエリ | 別のテーブルにレコードを追加できる |
削除クエリ | テーブルのデータを削除できる |
アクションクエリの使用頻度は少ないですが、テーブル内のデータを一括に更新したい時に便利なクエリです。
◆ その他のクエリ
他にもいろいろなクエリがありますが、よく利用されるのがユニオンクエリです。同じフィールドを持った2つのテーブルを合わせる事ができます。
例えば、売上データが1月から12月までの12個あり、この12個のデータを使って1年間のデータを作成することができます。リレーションやテーブルの結合は、フィールド(項目)を結合しますが、ファイルの結合はしてくれません。このファイル同士の結合がユニオンクエリで、SQL言語で作成することになります。
選択クエリで作成
顧客情報テーブルを利用して、選択クエリを作成します。
選択クエリは、クエリの中で最も利用されるクエリです。テーブルから必要なフィールドだけを取り出して、昇順、降順で並べ替えを行なったり、取り出されたレコードの中から、条件に合ったレコードのみを表示させることができます。
[顧客]テーブルを基にしたクエリを作成します。
① リボンタブ[作成]を選択し、[その他]の[クエリデザイン」をクリックします。
② [テーブルの表示]ダイアログボックスが表示されます。[テーブル]タブが選択され、「顧客」テーブルが1つ表示されています。[追加]ボタンをクリックして、[テーブルの表示]ダイアログボックスを閉じます。

③ タブに「クエリ1」と表示されていることを確認します。
[顧客]リストから各フィールド名を上(NOフィールドから)から順番にダブルクリックします。
※フィールドリスト内の「*」はすべてのフィールドを意味します。
④ デザイングリッドに各フィールドが追加されたことを確認します。また、「NO」フィールドの[並べ替え]行に、「昇順」を設定します。
⑤ ツールバーの[結果]セクションの[表示]ボタンをクリックして、データシートビューに切り替えます。

⑥ 「顧客」テーブルのデータがそのまま表示されます。

SQL構文の確認
テーブルのデータを取り扱うには、SQLと呼ばれるプログラム言語で処理します。
ユーザがクエリを作成すると、Access自身が裏側でSQL言語を記述してくれますので、ユーザはSQL言語を知らなくても、テーブルから自由にデータを抽出、検索できます。しかし、SQL言語の意味が分かれば、ユーザの知識の幅が広がり、より柔軟なクエリを作成することができます。
どのようにAccessはSQL言語を記述しているか確認してみます。
① [ホーム]タブの「表示」ボタンの下側の▼ボタンをクリックして、「SQLビュー」でクリックします。
② 作成したクエリのSQL構文が表示されます。

■ SQLの読み方
SQL言語の命令文をステートメントと呼びます。このステートメントはいくつかの句からなり、大文字、小文字の区別がなく記述でき、空白は無視され、ステートメントの最後にはセミコロン(;)を記述します。
SELECT 顧客.[NO], 顧客.名前, 顧客.郵便番号, 顧客.都道府県, 顧客.市区郡, 顧客.住所
FROM 顧客
ORDER BY 顧客.[NO];
SELECTに続く部分(句)には、テーブルのフィールドを列挙します。
テーブルのフィールド名を厳密に指定するには、間にコロン(.)を入れて「テーブル名.フィールド名」のように記述します。
「SELECT 顧客.[NO],顧客.名前」の部分を説明すると、"「顧客」テーブルの「NO」フィールドと「顧客」テーブルの「名前」フィールド"となります。
複数のフィールドを列挙するには、カンマ(,)で区切ります。
FROMに続く部分(句)には、テーブル名を記述します。
「FROM 顧客」の部分を説明すると、"「顧客」テーブルから"という意味になります。
ORDER BYに続く部分には、並べ替えを指定します。昇順の場合は省略または「ASC」、降順の場合は「DESC」と記述します。
「ORDER BY 顧客.[NO];」の部分を説明すると"「顧客」テーブルの「NO」フィールドを昇順で並べ替える"という意味になります。
この3行のSQL文を解析すると『顧客テーブルから、「NO」、「名前」、「郵便番号」、「都道府県」、「市区郡」、「住所」フィールドの各データを取り出して、「NO」フィールドを基準にして昇順で並べ替えて表示しなさい』となります。
他にもさまざまなステートメントがありますが、必要に応じて学習されることをお勧めします。