Microsoft Access 掲示板

クロス集計クエリからレポート印刷 / 9

50 コメント
views
4 フォロー
9
hiroton 2021/03/18 (木) 09:25:06 修正 ce119@f966d

hirotonがワークテーブルを挙げているのは、処理の流れが分かりやすくなるのとクエリのデザインビューが活用しやすいという点からですね。データベース的な目線からは無駄が多いような気もしますが、理解しやすいんじゃないかと


さて、改めて画像を眺めていたんですが、1ページ目と2ページ目は書式は同じですが合計数量のデータが違っていますね。2ページ目以降は空白になったほうがいいんでしょうか?

それと、hirotonの見落としですが、合計数量はデータ全体の合計になっているようので、11店舗ずつ区切るとちょっと手間が出そうです(合計数量を表示するクエリと11店舗分のクエリを別々に作って後で繋げる)

ACCESSでやる方法ならhatenaさん提示のクロス集計クエリで列見出しを固定する方法のほうがよさそうです


クロス集計クエリの列を固定する方法がよさそうではありますが、せっかくなので代案(訂正案)を出します

表示列数分のワークテーブルを用意します(サンプルのため3店舗に簡略)

T_出力店舗

f0f1f2
店舗A店店舗B店店舗C店

レポート出力用にクエリを作成します

SELECT
  棚番号
  , Sum(数量) AS 合計数量
  , f0
  , f1
  , f2
  , Sum(IIf([店舗名]=[f0],[数量])) AS n0
  , Sum(IIf([店舗名]=[f1],[数量])) AS n1
  , Sum(IIf([店舗名]=[f2],[数量])) AS n2
FROM
  テーブルA
  , T_出力店舗
GROUP BY
  棚番号
  , f0
  , f1
  , f2
;

上記クエリをレコードソースにしてレポートを次のようにします

ページヘッダー
棚番号合計数量f0f1f2
詳細
棚番号合計数量n0n1n2

ページヘッダー内の「棚番号」と「合計数量」はラベル、その他はテキストボックス(表示内容はコントロールソース)です

このレポートをプレビュー表示すると望みの1ページ目になりますか?
うまくいくようだったらT_出力店舗の各フィールド(f0,f1,f2)を「店舗D店」「店舗E店」「店舗F店」に書き換えて再度レポートをプレビュー表示してください。望みの2ページ目になりますか?

これでうまくいくようであれば続き(VBAで店舗を書き換えてレポートを表示する部分)に進みます

通報 ...