参照整合性とは
参照整合性は、レコードの入力や削除を行っても、テーブル間のリレーションシップが維持されるようにするための規則です。次の条件を満たす場合に、参照整合性を設定することができます。
- 主テーブルから一致するフィールドが、主キーであるか、または固有インデックスが設定されていること。
- 関連付けるフィールドが同じデータ型であること。ただし、2 つの例外があり、オートナンバー型フィールドと、"FieldSize/フィールドサイズ" プロパティに [長整数型] が設定されている数値型フィールドとを関連付けること、および "FieldSize/フィールドサイズ" プロパティに [レプリケーション ID型] が設定されている数値型フィールドと、"FieldSize/フィールドサイズ" プロパティに [レプリケーション ID型] が設定されているオートナンバー型フィールドとを関連付けることは可能です。
- 両方のテーブルが同じ Access データベースにあること。テーブルがリンク テーブルの場合、テーブルは両方とも Access の形式のものであり、リンク元のテーブルも同じデータベースに保存されている必要があります。他の形式のデータベースからリンクされたテーブルに対しては、参照整合性は設定できません。
参照整合性を設定すると、次の規則に従う必要があります。
- 主テーブルの主キーに存在しない関連テーブルの外部キー フィールドに、値を入力することはできません。ただし、外部キーに Null 値を入力し、そのレコードが関連付けられないように指定することができます。たとえば、存在しない得意先を受注データに割り当てることはできませんが、[得意先コード] フィールドに Null 値を入力することにより、どの得意先も割り当てられていない受注データを作成することはできます。
- リレーション テーブルに一致したレコードが保存されている場合、主テーブルからレコードを削除することはできません。たとえば、[受注] テーブルに担当社員として入力されている社員のレコードを [社員] テーブルで削除することはできません。
- レコードに関連レコードがある場合、主テーブルの主キー フィールドの値は変更できません。たとえば、[受注] テーブルに担当社員として入力されている社員の ID を [社員] テーブルで変更することはできません。
これらの規則をリレーションシップに設定する場合、リレーションシップを作成するときに [参照整合性] チェック ボックスをオンにします。参照整合性が設定されている場合に、規則に合わない操作をリレーション テーブルで行うと、メッセージが表示され、操作は実行されません。
関連レコードの削除と変更に対する規則は無効にすることができ、[フィールドの連鎖更新] および [レコードの連鎖削除] チェック ボックスをオンにしておくと、参照整合性を維持することができます。[フィールドの連鎖更新] チェック ボックスをオンにすると、主テーブルの主キー フィールドの値を変更したとき、関連するテーブルの対応するレコードの値がある場合は、自動的に更新されます。[レコードの連鎖削除] チェック ボックスをオンにすると、主テーブルの主キー フィールドの値を削除したとき、関連するテーブルの対応するレコードの値がある場合は、自動的に削除されます。[フィールドの連鎖更新] および [レコードの連鎖削除] チェック ボックスの詳細については、 をクリックしてください。
既存のリレーションシップの編集方法と参照整合性の設定方法の詳細については、 をクリックしてください。
新しいリレーションシップの定義方法の詳細については、 をクリックしてください。