ACCESS テーブルのフィールドが削除できない時に確認すること

ACCESSでデータを保管する最も重要な要素がテーブルです。
このテーブルには複数のフィールド(列)があるのですが、一度作成した後でフィールドを削除しようとしたときに、エラーメッセージが出て削除できず困った経験があるという方がいらっしゃるのではないでしょうか。
今回は、テーブルのフィールドが削除できない時に確認することをご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSの基本的な使い方をご紹介していきます。
テーブルのフィールドが削除できない原因
テーブルのフィールドをデザインビューで削除しようとした際、以下のようなメッセージが出ることがあります。
〇〇フィールドを削除できません。
このフィールドにはリレーションシップが設定されています。
このフィールドを削除するには、リレーションシップ ウィンドウで関連するリレーションシップを削除する必要があります。
画面でいうとこんな感じです。

これは、メッセージの通りテーブルのフィールドに他のテーブルとのリレーションシップが設定されているので、このフィールドを削除できない、ということを示しています。
解決方法
細かい内容は後述するとして、先に解決方法をお伝えします。
削除しようとしたフィールドにリレーションが設定されていることが原因なので、リレーションを削除してしまえばよいのです。
ACCESSのメニューから、「データベースツール」→「リレーションシップ」を選択します。

すると、下記のようなリレーションシップウィンドウが表示されます。

ここに、先ほど削除しようとしたテーブルとフィールドが表示されているはずです。
例えば、MST_顧客テーブルの担当IDフィールドは、MST_担当テーブルの担当IDフィールドと線で結ばれており、リレーションが設定されています。
このフィールドはこのままでは削除できないので、このリレーションの線を削除しましょう。
線を選択した状態でDeleteを押します。

削除の確認メッセージが表示されますので、はいを押します。
すると、リレーションの線が削除されました。

これで、MST_顧客の担当IDフィールドのリレーションが無くなりましたので、フィールドを削除することが可能になります。
リレーションシップとは
では、リレーションとは何でしょうか。
ACCESSは、複数のテーブルを連結して一つの表を作っていくリレーショナルデータベースです。
複数のテーブルに分割することで、以下のメリットがあります。
①入力規則を徹底できる
②集計が容易
③更新がある場合に一ヶ所変更すれば全て変更できる
こうして複数に分割したテーブルは、バラバラでは意味をなしません。
テーブルをつなぎ合わせ、リレーションシップを設定してようやく使えるようになります。
リレーションシップとは、複数のテーブルを共通のキー値でつないで意味を持たせることです。
例えば、下記の例では売上マスターと商品マスターが共通の商品IDで連結されています。

こういったテーブル構成にすることで、売上マスターには商品IDだけを情報として保有することができ、商品名が変更になった際は商品マスターの商品名を1か所書き換えるだけで、売上マスターから参照される商品名を更新することが可能です。
リレーションシップの設定について詳しく知りたい方は、以下の記事も参照ください。

以上、テーブルのフィールドが削除できない時に確認することをご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

最後までお読みいただき、ありがとうございました。