トップ > スキル : アプリケーション > Access(アクセス) > 基礎編(各オブジェクトの作成)

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の読み方

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」フィールドを基準にして昇順で並べ替えて表示しなさい』となります。

他にもさまざまなステートメントがありますが、必要に応じて学習されることをお勧めします。