Accessのレポートで列の数が動的に変化するときの作成方法

前提

Microsoft Accessを使ってレポート作成をしています。
クロス集計した結果をレポートに反映させたいのですが、
列の数が動的に変化するため、改ページして2枚目以降のレポート作成をどのようにすればいいのか試行錯誤しています。
クロス集計で表示したい内容を出すところまではできましたが、
レポートの表示列が固定(?)なため、何列ごとに改ページするというような内容をVBでコードを書いていくしかないと思いますが、何列目が終わったら改ページして再度同様の内容で続きの集計結果を描写するという方法が思いつきません。
お知恵をお貸しいただけますと幸いです。

実現したいこと

  • 指定した年月の範囲を抽出条件としてクロス集計する
  • 一番左の列(日)は固定で、1日~31日を表示
  • 次の列から指定した年月日の範囲を表示

 <例> 2017年05月~2019年03月を抽出条件として指定して、その範囲の検索結果を表示

  • 指定した年月の範囲はクエリの列固定とする
  • 1枚の列表示は「日」の項目を合わせて5列表示とする

クロス集計結果

2021-01 2022-02 2022-03 2022-04 2022-05 2022-06 ---
金額 金額 金額 金額 金額 金額
1日 70000 1000000
2日 30000 60000 100000
3日 50000 100000
4日 10000 80000
5日 20000
6日 40000
7日 200000
8日

上記内容を下記のような形にレポート作成することは可能でしょうか?

2021-01 2022-02 2022-03 2022-04
金額 金額 金額 金額
1日 70000
2日 30000 60000
3日 50000
4日 10000 80000
5日 20000
6日 40000
7日 200000
8日
2021-05 2022-06
金額 金額
1日 1000000
2日 100000 30000
3日 100000
4日
5日 20000
6日
7日
8日

該当のソースコード

  • 日付テーブル(内容は1-31)
  • 販売テーブル
ID 取引先コード 取引先名 商品コード 商品名 単価 数量 日付
1 1 A商店 11111 商品A 100 10 2022/7/1
2 1 A商店 11111 商品A 100 5 2022/7/14
3 1 A商店 11111 商品A 100 6 2022/7/21
4 1 A商店 11111 商品A 100 1 2022/6/16
5 1 A商店 11111 商品A 100 22 2022/6/10
6 1 A商店 11111 商品A 100 3 2022/6/14
7 1 A商店 11111 商品A 100 7 2022/5/18
8 1 A商店 11111 商品A 100 8 2022/5/27
9 1 A商店 11111 商品A 100 9 2022/8/5
10 1 A商店 11111 商品A 100 16 2022/8/9
11 1 A商店 11111 商品A 100 5 2022/8/7
  • 集計クエリ
SELECT Format$(販売クエリ.日付, "yyyy-mm-01") AS [month], Day(販売クエリ.日付) AS 日, 販売クエリ.日付, 販売クエリ.取引先コード, 販売クエリ.取引先名, 販売クエリ.商品コード, 販売クエリ.商品名, [数量]*[単価] AS 値 FROM 販売クエリ;
  • クロス集計
TRANSFORMMin(Q_1.値) AS 値の最小 SELECT F_日付.日付 FROM F_日付 LEFT JOIN Q_1 ON F_日付.日付 = Q_1.日 GROUP BY F_日付.日付, Q_1.日付 PIVOT Q_1.Month IN ("2022-01-01","2022-02-01","2022-03-01","2022-04-01","2022-05-01","2022-06-01")

コメントを投稿

0 コメント