プロが教える店舗&オフィスのセキュリティ対策術

Access2016を使用しています。Access初心者です。
フォームを作成し、新規レコードを追加しようとすると
「レコードを追加できません。テーブル’T部品マスタ’の結合キーがレコードセット

にありません。」
と表示されてしまいます。

具体的には下記のとおりです。
3個のテーブルを作成し、それぞれに主キーを設定しています。

テーブル名:T部品マスタ
フィールド名/データ型:(主キー)部品№/数値型
分類№/数値型
メーカー№/数値型
部品名/短いテキスト
型番/短いテキスト

テーブル名:T分類マスタ
フィールド名/データ型:(主キー)分類№/数値型
分類名/短いテキスト

テーブル名:Tメーカーマスタ
フィールド名/データ型:(主キー)メーカー№/数値型
メーカー名/短いテキスト

このテーブル同士を下記のようにリレーションシップで繋ぎました。
T部品マスタ_分類№ - T分類マスタ_分類№
T部品マスタ_メーカー№ - Tメーカーマスタ_メーカー№

そして、下記のようにフォームを作成しました。
・部品№
・分類名
・メーカー名
・部品名
・型番
byT部品マスタ
単票形式フォーム

既存レコードは目的通り表示がされるのですが、新規レコードを追加しようとすると
「レコードを追加できません。テーブル’T部品マスタ’の結合キーがレコードセットにありません。」
と表示され、追加することができません。

結合キーって?レコードセットとは?用語もわからずチェックする場所もわからず、完全に息づまってしまいました。
どのように修正すれば新規レコードを追加できるでしょうか。
ご教示のほど、よろしくお願い申し上げます。

A 回答 (1件)

複数のテーブルを元に作成したクエリを元にフォームを作成した為の問題と考えます。


部品マスタに、分類マスタ、メーカーマスタのデータを元に、新規登録する操作と思います。
この場合、部品マスタテーブルのみを元に、フォームを作成します。
そして、分類No.、メーカーNo.は、コンボボックスにして、値集合ソースとして、それぞれのテーブルを指定します。
コボボックスプロパティのデータタブの連結列は1に設定し、それぞれのNo.が入力されるようにします。
同書式タブの列数は2、列幅は0を設定します。
こうすると、2番目列の分類名、メーカー名が表示されるようになります。
従って、コンボボックスのラベルは、分類名、メーカー名でいいです。
しかし、実際に入力されるのは、No.となります。

行いたいことはこれでよろしいでしょうか?
理解が不足でしたら捕捉してください。
    • good
    • 1
この回答へのお礼

大変助かりました。おかげさまで理想の形にすることができました。
ありがとうございます。

お礼日時:2018/09/14 15:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A