私は 1 対 1 の関係を持っています。単純にオブジェクトと人物と呼びましょう。すべてのオブジェクトには、ゼロまたは 1 人の人物が含まれる場合があります。オブジェクトには、オブジェクト グループ ID とオブジェクト ID で構成される複合主キーがあります。ユーザーは不足しているデータを簡単に入力できる方法を求めているので、人物が割り当てられていないすべてのオブジェクトを表示するフォームを作成しました。フォームは 3 つの列を持つデータシートです: グループ ID、オブジェクト ID、および個人キー (もちろん、フォームを開いたときはすべての行が空です)。
一部のオブジェクトが同じグループの他のオブジェクトと同じ人物を持っている可能性が非常に高いため、現在選択されているグループのすべての人物を返すクエリを利用して、人物 ID フィールドをリストボックスとして作成しました。ドロップダウン メニューから追加するだけです。グループ ID を含むフォーム コントロールはクエリ内から参照され、選択が変更されるとリスト ボックスが再クエリされます。
これまでのところ、動作します。私の問題は、人を割り当てた後に別のグループのオブジェクトを選択すると、割り当てられた人のセルの内容が消えることです。テストのためにいくつかのオブジェクトに人物を割り当てたところ、現在選択されているオブジェクトのグループに割り当てられた人物のみが人物列に表示されることに気付きました。別のグループからオブジェクトを選択すると、それらが消えます (そして、別のオブジェクトの人物が表示されます)。同じグループからオブジェクトをもう一度選択すると、割り当てられた人が再びそこにいます。そのため、割り当てられた人物は、それぞれの行のクエリの結果に含まれている場合にのみ表示されます。
ただし、データは保存されます。割り当てられた個人は、すぐにオブジェクト テーブルに保存されます。