- ベストアンサー
access クエリからレポートへ
- accessクエリを使用してレポートを表示する方法について知りたいです。
- レポートで月度ごとのコード、取引名、金額を集計して表示したいです。
- 指定した範囲の月度ごとのコード、取引名、金額の合計を計算して表示できますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>毎回違う期間を集計したいのですが、できるのでしょうか? できますが、列(月度)が存在するものだけでよいなら、先に述べた ように「PIVOT 月度」だけでOKです。しかし、開始~終了で列を固定 したい場合はPIVOT句を変更する必要があります。 レポートのOpenイベントで、RecordSourceプロパティのSQLを動的に 変更すればよいでしょう。ただ、レポートの設計自体は固定なので、 フィールドをどう配置するかが難しいと思いますよ。 むしろ、クエリの列は固定で、WHERE句により開始~終了を指定する 方が見栄えは良いのでは? いずれにしても、どんなレポート体裁にしたいかで、方法は変わり ます。
その他の回答 (1)
- nda23
- ベストアンサー率54% (777/1415)
クロス集計クエリを使えば実現できます。 以下の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から始めることで解決できます。
お礼
回答ありがとうございます。 初めてクロス集計使いました。便利ですね。 月度の抽出条件で、Between [開始] And [終了]というふうに、 毎回違う期間を集計したいのですが、できるのでしょうか?
お礼
なんとかできました。 確かに、レポート体裁によって変わりますね。 どうもありがとうございました。