MS Access (365) フォーム: 1 つの ID が 2 つのフィールド (プライマリ、セカンダリ) にリンクします。サブフォームで両方のフィールドを取得するにはどうすればよいでしょうか。

MS Access (365) フォーム: 1 つの ID が 2 つのフィールド (プライマリ、セカンダリ) にリンクします。サブフォームで両方のフィールドを取得するにはどうすればよいでしょうか。

会社テーブルと請負業者テーブルがあります。請負業者テーブルには、主請負業者フィールドと副請負業者フィールドがあります。両方のフィールドは、会社テーブルから会社名を取得します。

契約サブフォームを含む会社フォームを作成しました。目的は、新しい会社を追加するときに契約を割り当てることです。直面している問題は、契約サブフォームに companies.contractor と companies_1.contractor を追加すると、companys_1.contractor が companies.contractor として保存されることです。フィールドをドラッグ アンド ドロップしたり、プロパティ シートの [コントロール ソース] フィールドに適切な名前を入力したりしてみましたが、どちらも解決にはなりませんでした。companys_1.contractor ではなく、companys.contractor として保存され続けます。

なぜこのようなことが起こるのでしょうか。また、セカンダリ契約情報のみを表示するのではなく、プライマリ会社とセカンダリ会社の両方のデータをキャプチャできるように、これを回避するにはどうすればよいですか (companys.contractor はデータベース内でセカンダリです)。

答え1

解決:

フォームのプロパティに移動し、レコード ソースを更新します。

すべてのデータを 1 つのビューに格納する作成したクエリを使用する代わりに、2 つのテーブル間のリレーションシップを作成しました。これは、リレーションシップ/クエリ作成者ビューに 3 つのテーブル (企業、契約、企業_1) として表示されます。PrimeContractorID は Companies_1 テーブルの CompanyID にリンクされ、CompanyID は Companies テーブルの CompanyID にリンクされます。

関連情報