Microsoft Access Club >AccessTips >このページ >次頁 < 前項  サイト内検索


フォームに表示される日付について:AccessTips057



テーブル間でリレーションを設定するときに、下記のダイアログのチェック欄が現れ、参照整合性を有効にした方がいいのか迷うときがあります。今回、 この参照設定を有効、あるいは無効にしたときの影響についてお話したいと思います。

参照整合性

参照整合性とは何なのか、詰まるところリレーションを設定したテーブル間でデータの整合性です。一例を挙げますと、下記の2つのテーブルを想定して下さい。tbl_masterテーブルを1側に、tbl_sampleテーブルを多側に設定したリレーションの関係にあるとしましょう。

tbl_masterテーブルのデータ
 

商品ID

商品名

0001

カラーテレビ

0002

エアコン

0003

電子レンジ

tbl_sampleテーブルのデータ
 

ID

商品ID

販売店

1

0001

(株)華北物産

2

0003

(有)マツムシ商店

3

0001

(株)華北物産

4

0002

(有)マツムシ商店

5

0003

(株)伊藤商事

6

0003

(株)華北物産

7

0004

(株)名取商事

8

0001

(有)マツムシ商店

  1. tbl_sampleテーブルの商品IDフィールドに0004が入力されています。
  2. しかし、この0004は、tbl_masterテーブルに存在しません。
  3. この場合、参照整合性を有効にしていれば、この"0004"は入力できないことになっています。
  4. 参照整合性を有効にした場合、1対多のリレーションの設定では、リレーションを設定しているフィールド間において、多側に入力するデータは、必ず事前に1側に存在していなくてはいけません。
  5. しかし、これはこれでいいんだと、お思いの場合は、参照整合性を無効にしておくことです。
  6. 当然のことながら、これらテーブルをクエリで結合させると、下記のように0004は表示されません。
ID 商品ID 商品名 販売店
1 0001 カラーテレビ (株)華北物産
2 0003 電子レンジ (有)マツムシ商店
3 0001 カラーテレビ (株)華北物産
4 0002 エアコン (有)マツムシ商店
5 0003 電子レンジ (株)伊藤商事
6 0003 電子レンジ (株)華北物産
8 0001 カラーテレビ (有)マツムシ商店
  1. リレーションの設定は、データ入力を行う前に、又は1側のテーブルにデータ入力を行った後、に行います。
  2. 多側のテーブルにデータ入力(他のテーブルからなどのインポート)の後、リレーション設定を行い、参照整合性を有効に設定すると、下記のようなメッセージが表示されることがあります。

  1. このメッセージに書かれている事柄は、上記に説明した内容と同じです。
  2. この場合は、tbl_sampleテーブルにある違反しているレコードを削除するか、修正して下さい。
  3. または、「参照整合性」を無効にします。
  4. 有効、無効に違いによって、「リレーションシップ」で表示される図案が異なります。

 2001/07/29

ページの先頭へ 前ページへ戻る

 


フォームに表示される日付について:AccessTips057


 

-Microsoft Access Club-