• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:access クエリからレポートへ)

access クエリからレポートへ

このQ&Aのポイント
  • accessクエリを使用してレポートを表示する方法について知りたいです。
  • レポートで月度ごとのコード、取引名、金額を集計して表示したいです。
  • 指定した範囲の月度ごとのコード、取引名、金額の合計を計算して表示できますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

>毎回違う期間を集計したいのですが、できるのでしょうか? できますが、列(月度)が存在するものだけでよいなら、先に述べた ように「PIVOT 月度」だけでOKです。しかし、開始~終了で列を固定 したい場合はPIVOT句を変更する必要があります。 レポートのOpenイベントで、RecordSourceプロパティのSQLを動的に 変更すればよいでしょう。ただ、レポートの設計自体は固定なので、 フィールドをどう配置するかが難しいと思いますよ。 むしろ、クエリの列は固定で、WHERE句により開始~終了を指定する 方が見栄えは良いのでは? いずれにしても、どんなレポート体裁にしたいかで、方法は変わり ます。

orih65
質問者

お礼

なんとかできました。 確かに、レポート体裁によって変わりますね。 どうもありがとうございました。

その他の回答 (1)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

クロス集計クエリを使えば実現できます。 以下のSQLを持つクエリを作成し、これを元にレポートを作ります。 TRANSFORM MAX(金額) SELECT コード,MAX(取引名) AS 名前,SUM(金額) AS 合計金額 FROM クエリ GROUP BY コード PIVOT 月度; もし、月度が数値なら最後のPIVOT 月度はPIVOT 月度 & "月"でも OKです。但し、実際に存在する月の分しか列が展開されないので、 毎月のレポートの列数が不定になるかも知れません。これを解消 したい場合はPIVOT 月度 IN (1,2,3,・・・,10,11,12)と記述します。 これで、列は固定され、データが無い月は空欄(Null)になります。 ※もし、PIVOT 月度 & "月"としていたらIN句も("1月","2月",・・・ と  してください。尚、年度開始が4月などという場合はIN句も1から  ではなく、4から始めることで解決できます。

orih65
質問者

お礼

回答ありがとうございます。 初めてクロス集計使いました。便利ですね。 月度の抽出条件で、Between [開始] And [終了]というふうに、 毎回違う期間を集計したいのですが、できるのでしょうか?

関連するQ&A