| 
    
     |  | >メインフォームのコードフィールドに1を入力し、その後サブフォームにデータを入力すると >サブフォームに入力したデータのコードフィールドには自動的に1が入力されます
 >これはテーブルAの主キーとテーブルBの主キーではないフィールドがリレーションされているため
 >という認識であっていますでしょうか?
 
 私も素人なので、正確な知識がありません。そういう前提で読んでください。
 
 厳密に言うと、そのような認識は間違っていると思います。
 上記のようになるのは、リレーションシップを設定しているからではなく、
 メイン/サブフォームだからそうなるのです。
 リレーションシップを外してしまっても、同じように動くはずですから、
 リレーションシップとは関係ありません。
 つまり、「リレーションされている」という言葉を使った点で
 間違っていると思います。
 
 
 >同じコードが重複するため主キーに設定できないため使えません。(これも認識正しいでしょうか?)
 これは、まさにそのとおりです。
 主キーの値は、他のレコードと同じ値を持つことはできません。
 
 
 >何か良い方法はないでしょうか?
 普通に両テーブルを結合させるフィールドを設けるだけです。
 
 まず、テーブルAに主キーを設ける必要があります。
 テーブルAの「コード」フィールドが主キーになれないことは、
 巻さんの仰るとおりです。
 そこで、例えば、オートナンバー型の「A_ID」フィールドを設け、
 これを主キーにします。
 「A_ID」というのはテーブルAのIDという意味です。
 テーブルBの「ID」フィールドと混同しないようにするため、
 フィールド名をちょっと変えます。
 
 次にテーブルBに「A_ID」フィールドを設けます。こちらは長整数型にします。
 
 リンク親フィールドとリンク子フィールドには「A_ID」フィールドを指定します。
 
 
 蛇足ですが、テーブルAの主キー「A_ID」フィールドを設けた場合、
 テーブルBには、「コード」フィールド、「日にち」フィールド、
 「部署」フィールドを設ける必要がなくなりますね。
 
 |  |