他のファイルからエクスポートしたリスト
Q2には売掛先ID、発生日付等があり取引がある分しかありません(同じ売掛先IDで日付違い等もあり)。
[T売掛対象会社]とは別に、各企業との取引実績が一定の期間に渡って記録されたファイル( CSV ファイルや Excel ブックなど)を元にインポートされたテーブル(以下[T取引実績]と仮定する)が存在する。
[T取引実績]にも[売掛先ID]というフィールドが存在するが、その値は一意ではない([売掛先ID]の値が他のレコードと重複するケースが含まれている)。
[Q2]は[T取引実績]を参照する選択クエリである(具体的にどのような抽出、集計、計算、変換を行なっているかは不明)。
という前提であるとして、
帳票フォームがありそれに会社毎に実績ありかどうか表示させたい
Q1は登録フォーム用のソースにしてますので入力可能にしたい
例えば、次のような方法が考えられます。
[売掛先ID](主キー。データ型は[T取引実績]に準拠)と[取引実績件数](長整数型)という 2 つのフィールドが定義されたテーブル(以下[T売掛先別取引実績集計]と仮定する)を別途作成しておく。
[T売掛先別取引実績集計]の全てのレコードを削除する削除クエリをあらかじめ作成しておく。
[T取引実績]のレコードを[売掛先ID]でグループ化し、グループごとのレコード件数を集計した結果を[T売掛先別取引実績集計]に追加する追加クエリをあらかじめ作成しておく。
[Q1](もしくは[T売掛対象会社])と[T売掛先別取引実績集計]を左外部結合し、[Q1]の全てのフィールドと[T売掛先別取引実績集計]の[取引実績件数]を選択した結果を返すクエリ(または SQL ステートメント)を[登録フォーム]のレコードソースとする。
[登録フォーム]の詳細セクション上に、[取引実績件数]をコントロールソースとする連結テキストボックスを配置し、その[編集ロック]プロパティを「はい」に設定する。
[登録フォーム]の[開く時]イベントの発生時に、上記 2 と 3 のクエリ(もしくはこれらに相当する SQL )を続けて実行し、フォームを再クエリするイベントマクロまたはイベントプロシージャを呼び出すようにする。
もし[登録フォーム]において新規レコードの追加を許可する場合は、更にもう一工夫が必要となるでしょう。