前提
Accessを初めて触ったときのできごとです。
とある学習講座で、お膳立てされた環境を使ったのに、うまくいかなかった話。
オチは、しょーもなさすぎるので、本当に困った人だけ読んでください。
やろうとしたこと
まず、リレーションシップは、以下の構成。
よくある、商品マスタテーブルの商品コード(主キー)を、売上データの外部キーとして使用します。
参照整合性にもチェックを入れています。
この商品マスタテーブルに、フォームを使って新しいレコードを追加します。
「商品入力」というフォームを作成。
商品マスタに、商品コード201で新規商品を追加しようとしました。
事象と解決策
「リレーションシップが設定されたレコードがテーブル'売上データ'にあるので、レコードの削除や変更を行うことはできません。」とエラーが出て、登録もできない、保存もできない、にっちもさっちもいかなくなって、その都度データベースオブジェクトを閉じては開き直して不毛な戦いをしていました。
商品コードはかぶっていないし、売上データに商品マスタにない商品を追加したわけでもないし、おかしいなあ…と思っていたら気づきました。
左下が1/10になっているじゃないですか。
矢印を押して、11/11にしたら、入力フォームが空欄になって、ここに入力したら登録できました。
商品マスタの1レコード目を、(すでに売上データに使用されているにも関わらず)変更しようとしたことによる、エラーでした。
よくよく考えれば、当たり前のことでした。恥ずかしい。