トップ > スキル : アプリケーション > Access(アクセス) > データベースシステム(クエリの作成)

Access

売上管理データベースの作成

クエリの作成3

ルックアップウィザードの利用

[Q売上データ]クエリをみると、顧客ID、商品ID、社員IDは、他のテーブル同士と関連付けられている主キーとなっています。
クエリの上では、それぞれの主キーとなるフィールドが設けられていますが、主キーとなっているフィールドのデータは番号ですので、番号だけではどこの会社なのか、社員は誰なのか、どの商品なのか見た目では分かりません。

テーブルの[データ型]の中には「ルックアップウィザード」が用意されていて、それを利用することによって、ユーザが内容を確認しながら、データを入力することできます。

顧客ID、社員ID、商品IDにそれぞれ、ルックアップ型を使用して、選択しやすい工夫を施します。この機能を利用する時に注意することは、リレーションシップが作成されていたら、一旦それを解除してから行う必要があります。


① リレーションシップウィンドウを表示させて、顧客ID、社員ID、商品ID間の結合線を一旦削除します。結合線の上で一旦クリックし、線が太くなったらその上で右クリックし、表示される一覧から「削除」をクリックします。

顧客ID、社員ID、商品ID間の結合線を削除したら、リレーションシップウィンドウは閉じます。

② [売上テーブル]をデザインビューで開きます。
[顧客ID]フィールドの[データ型]の▼をクリックして、「ルックアップウィザード」を選択します。

ルックアップウィザードの設定

③ ルックアップウィザードが起動します。
「顧客テーブル」からデータを参照するように設定しますので、「テーブルまたはクエリの値をルックアップ列に表示する」を選択します。
[次へ]ボタンをクリックします。

ルックアップウィザード

④ 「テーブル:顧客テーブル」を選択します。[次へ]ボタンをクリックします。

ルックアップウィザード

⑤ 顧客IDを「会社名」フィールドの値として表示するので、「会社名」を右のテキストボックスに移動させます。
[次へ]ボタンをクリックします。

ルックアップウィザード

⑥ 並び替えはしませんので、そのまま[次へ]ボタンをクリックします。

ルックアップウィザード

⑦ ルックアップ列に表示する列には、「会社名」のみを表示させます。
「キー列を表示しない」にチェックを入れます。また、列幅を自動調整するために、列の右端をダブルクリックして、すべての文字が表示されていることを確認します。
[次へ]ボタンをクリックします。

ルックアップウィザード

⑧ ルックアップ列に表示するラベル名は「顧客ID」にします。
[完了]ボタンをクリックします。

ルックアップウィザード

⑨ 保存を促すメッセージが表示されます。[はい]をクリックします。

ルックアップウィザード メッセージ表示

⑩ データシートビューに切り替えます。[顧客ID]列には、[顧客テーブル]から参照された「会社名」が表示されます。

同様の操作を行って、「売上テーブル」の「社員ID」フィールドにも「姓」をルックアップ列に表示させるようにします。

「売上詳細テーブル」の「商品ID」フィールドには、[商品テーブル]の「商品名」がルックアップ列に表示されるようにします。

商品テーブル

クエリでのルックアップ列の確認

テーブル上で「顧客ID」、[社員ID]、「商品ID」の各フィールドには、ルックアップ列としてそれぞれの顧客名、姓、商品名が表示されるように設定しました。

これらのフィールドを基に作成した「Q新規売上データの追加」クエリを開くと、各フィールドにはID番号ではなく、各テーブルから参照された顧客名、社員名、商品名が表示されていることが確認できます。

クエリの編集(Q売上データ)

ルックアップの設定を行なったことで、無駄なデータ表示が発生するようになります。では、「Q売上データ」クエリをデータシートビューで開いて内容を確認してみます。

このクエリを見ると、「顧客ID」と「会社名」、「商品ID」と「商品名」、そして「社員ID」と「姓」が同じ表示内容となっています。
重複する列「Q売上データ」クエリから、[会社名]、[商品名]、[姓]フィールドを削除することで、同じデータを表示させないようにします。

デザインビューに切り替えて、[会社名]、[商品名]、[姓]フィールドを選択して、Deleteキーで列を削除します。以下の図が削除した結果です。

標題の設定

「Q売上データ」クエリをみると、テーブルでルックアップ列の設定を行ったので、「顧客ID」列なのに「会社名」が表示されます。見出しの内容と実際表示されるデータが異なりますので、標題を設定して、見出しの表示だけを見かけ上、分かりやすい見出しにします。

① デザインビューの状態にして、「顧客ID」フィールドのプロパティを開きます。

フィールド列のプロパティ表示

② [標準]タブ[標題]プロパティに「顧客名」と入力します。

標題を顧客名と入力

③ [フィールドプロパティ]ダイアログボックスは開いたまま、[商品ID]を選択します。
[標題]プロパティに「商品名」と入力します。

標題を商品名と入力

④ さらに、[社員ID]を選択して、[標題]プロパティに「社員名」と入力します。

標題を社員名と入力

⑤ [フィールドプロパティ]ダイアログボックスを閉じて、データシートビューに切り替えます。

見出しの内容が変更されていることを確認します。
[標題]プロパティは、あくまでもデータシートビューで見たときの見出し名となるだけで、実際は各IDのフィールド名のままです。

リレーションシップの再設定

ルックアップ列が完成したら、リレーションシップの設定を元に戻します。リレーションシップウィンドウを起動させ、各テーブル間で参照整合性を再設定します。下の図を参考に設定してください。

ルックアップを設定すると自動的に結合線が設定されますが、参照整合性は無効の状態です。参照整合性にチェックを付けるためには、[リレーションシップの編集]から行ないます。