Access

アクセス初心者がリレーションシップで「参照整合性」が設定できない原因

スポンサーリンク

Accessで、データベースを構築するには、まずテーブルを作成します。

次に、テーブル間の、関連付けたいフィールド同士に、リレーションシップを設定していきます。その際に、参照整合性の設定をしておくと、この後のデータの入力ミスや誤って削除してしまうミスを防ぐことができます。

この参照整合性の設定で、エラーがでてしまう事がよくあるので、その原因を解説していきます。

1.リレーションシップの設定

①リレーションシップを構築する

Accessでは、テーブルを小分けして作成し、それらを互いに関連付けて管理をします。

例えばあるパソコンスクールで、生徒の住所などの情報、生徒の利用履歴、生徒の受講科目などを管理する場合、これらをひとつの表にまとめるのではなく、関連する項目ごとに分類して表を作成します。

生徒の情報は生徒マスターに、利用日時などは利用履歴データに、受講科目は受講科目マスターに分類して、それぞれ表を作成します。

そして、3つのテーブルの、同じフィールド同士で関連付け(=リレーションシップ)を設定して管理します。

Accessリレーションシップ

②リレーションシップの設定をする

《データベースツール》タブー《リレーションシップ》グループー《リレーションシップ》をクリックー《テーブルの表示》ダイアログボックスー設定したいテーブルを追加する

関連付けたいフィールドからフィールドへドラッグするー《リレーションシップ》ダイアログボックスの参照整合性にチェックを入れてOKをクリック。

リレーションシップ参照整合性の設定

※ここで、エラーメッセージが表示されて、設定できない場合は、次の「2」内容を確認していきましょう。

2.リレーションシップで参照整合性が設定できない原因

①関連付けたいフィールドのフィールド名が違う

関連付けたいフィールド名が違えばもちろん、参照整合性は設定できないのですが、フィールド名の入力ミスはすぐに気づきますね。

初心者に多く見つけずらいミスが、フィールド名の前や後ろにスペースが入ってしまっている場合です。特に後ろのスペースは見た目では分かりません。

後ろのスペースの調べ方は、フィールド名の後ろにカーソルを立たせ、→キーを押して、カーソルが動けばスペースがありますので、削除しましょう。

②関連付けたいフィールド同士のデータ型とフィールドサイズが違う

関連付けたい2つのテーブルをデザインビューで開き、関連付けたいフィールドのデータ型とフィールドサイズを確認してください。

違っている場合は、同じデータ型とフィールドサイズに変更しましょう。

例えば、下の場合なら「T生徒マスター」の「生徒NO」のデータ型は《短いテキスト》でフィールドサイズは「4」、「T利用履歴データ」のデータ型は《短いテキスト》でフィールドサイズは「5」になっています。

どちらか正しいフィールドサイズに変更しましょう。例えば、「T利用履歴データ」のフィールドサイズを「5」から「4」に修正します。

③「主キー」に設定されているコード以外のコードを既に「外部キー」で入力してしまっている

参照整合性を設定した後は、外部キーのコードの入力ミスは防ぐことができます。

しかし、リレーションシップを設定する前に、既に入力しているデータやインポートしたデータに矛盾がある場合には、参照整合性の設定はできません。

「主キー」にないコードが、「外部キー」で入力されていたら、修正しましょう。

下の図では、「T生徒マスター」の「生徒NO」が主キーです。ここにない「生徒NO」を「T利用履歴データ」で例えば「9999」と入力してしまっていると参照整合性は設定できません。

YouTubeでみる↓

まとめ

Accessで、リレーションシップを作成する際、参照整合性の設定をしておくと、データの入力ミスを防ぐことができますので、ぜひ設定しましょう。

参照整合性が設定できない原因は、フィールド名、フィールドサイズが違う、主キーにないコードを外部キーで入力してしまっているという事が考えられますので、確認してみましょう。

sangoya
Accessの全貌をみるには、MOS試験を受けてみるのも得策です。

↓↓マイクロソフトの認定試験「MOS」の試験対策本です。

バージョンは2016で、パソコンにインストールして独学で勉強できるのでおすすめです!



Microsoft Office Specialist Microsoft Accsess 2016 対策テキスト&問題集 (よくわかるマスター)

スポンサーリンク

-Access

© 2021 無料オンラインパソコンスクール-SANGOYA Powered by AFFINGER5