#426 重複キーでグループ化してサブフォームに表示する方法 フォーム

テーブルにあるキーのレコードが重複して存在している場合に、それぞれのキー値ごとにデータをグループ化し、サブフォームとして画面表示させる方法です。
あらかじめテーブル設計としてメインのデータと明細データが1対多の関係で別テーブルとして生成されている場合には、特に事前準備なしにメイン/サブフォームを作ることによってそれを実現できますが、ここでは、同じ1つのテーブルを元にメインフォーム側とサブフォーム側を作成してグループ化することがポイントです。

ここでは例として次のようなテーブルを使います。
テーブルのデータシートビュー
このテーブルには、同じ「受注コード」を持った複数のレコードが存在しています。ここでは、たとえば受注コードが「1001」だけのレコードだけがサブフォームに表示されるようにします。そして、メインフォーム側で次のレコードに移動させると、今度は「1002」だけのレコードだけがサブフォームに表示されるようにします。


  1. このテーブルには、同じキー(受注コード)を持った複数のレコードが存在していますので、それらをグループ化して、1つのキーが1つのレコードとして取り出されるようにします。
    それには、次のような集計クエリを作成します。そしてこれをメインフォーム側のレコードソースとします。
    クエリのデザインクエリのデータシートビュー

  2. 続いてメインフォームを作ります。上記のクエリをレコードソースとする単票フォームとします。
    メインフォームのデザイン

  3. 最後に、サブフォームコントロールを追加します。ここでは、ソースオブジェクトプロパティを「テーブル.受注明細」、またリンク親フィールド・リンク子フィールドを「受注コード」とします。
    サブフォームを追加
このフォームを実行すると次のようになります。
フォームの実行結果
フォームの実行結果
| Index | Prev | Next |

この情報は参考になりましたか?、問題は解決しましたか?、もしまだなら......
T'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします
 

Copyright © T'sWare All rights reserved