2007年3月5日月曜日

Accessでフォームの作成におけるリレーションの利用

1. テーブルの属性

例えば、図書館の蔵書システムを考える。システムには、以下のようなテーブルがあるとする

  • 個人: ID, 名前, 住所
  • 貸出し: ID, 個人ID, 蔵書ID, 貸出し日
  • 蔵書: ID, タイトル, 著者

ここでテーブルの各IDは、一度設定されたら変更しないものとする。また、同じタイトルの本は一冊しかないと仮定する。

 

2. テーブルの制約

参照制約を、以下のように設定する。

  • 「貸出し.個人ID」 ---> 「個人.ID」
  • 「貸出し.蔵書ID」 ---> 「蔵書.ID」

 

3. フォームの入力でルックアップ

このとき、「貸出し」データをフォームから入力する。その際、

  1. 「個人ID」を入力したら、個人名を確認するために、「個人名」を表示してほしい。
  2. 「蔵書ID」を入力したら、蔵書のタイトルを表示してほしい。

上記を実現するには、クエリを利用する。

  1. 個人テーブルより、ID と名前を抽出するクエリを作成。
  2. 上記のクエリを、「貸出し」テーブルの「個人ID」のルック・アップに指定する。

これにより、「貸出し」フォームの「個人ID」の入力に、個人名を表示することができる。蔵書に関しても、同じことを行う。

 

関連記事