Microsoft Access Club Access超初心者対象Forum Access初級者対象Forum Access初・中級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトル月を限定してレポートを表示させたい
記事No171623
投稿日: 2016/10/28(Fri) 00:36
投稿者ねぎおとこ
解決済: ON
OS:Windows8.1
Access Version:2016

初めての質問投稿で、質問したいことがうまく伝わるか不安ですが、よろしくお願いします。

現在、出納簿のようなものを作成しているところですが、現在私が作成したレポートでは、
4月から1年間の状況が1つのレポートとして出力されるものとなっています。

このレポートは、収入金額・支出金額・残高の合計を月ごとに集計し、また毎月の出納簿の一番最後にはそれまでの月の収入金額・支出金額・残高の累計が表示されるものとなっています。

今回私が実現させたいことは、月を限定して表示させることです。

レポートのフィルター機能を使用して月を限定して表示させると、収入金額・支出金額・残高の累計の部分にそれまでの月の累計金額ではなく、その月単独の合計金額が表示されることとなり、意図しない結果となってしまいます。残高についても、その月の範囲内だけでの収支の動きが表示されてしまいます。

以上のような状況ですが、解決策があればご教授頂けないでしょうか。よろしくお願いします。

タイトルRe: 月を限定してレポートを表示させたい
記事No171624
投稿日: 2016/10/28(Fri) 09:28
投稿者hatena
解決済: ON
> 現在、出納簿のようなものを作成しているところですが、現在私が作成したレポートでは、
> 4月から1年間の状況が1つのレポートとして出力されるものとなっています。
>
> このレポートは、収入金額・支出金額・残高の合計を月ごとに集計し、また毎月の出納簿の一番最後にはそれまでの月の収入金額・支出金額・残高の累計が表示されるものとなっています。

その月の集計、累計はどこにどのように表示させていますか。

月毎のグループフッターを表示させていますか。
詳細セクション、グループフッターセクションの、収入金額・支出金額・残高を表示させているテキストボックスの設定(コントロールソース、集計実行等)の詳細を提示してもらえますか。

タイトルRe^2: 月を限定してレポートを表示させたい
記事No171627
投稿日: 2016/10/29(Sat) 00:15
投稿者ねぎおとこ
解決済: ON
> その月の集計、累計はどこにどのように表示させていますか。
>
> 月毎のグループフッターを表示させていますか。
> 詳細セクション、グループフッターセクションの、収入金額・支出金額・残高を表示させているテキストボックスの設定(コントロールソース、集計実行等)の詳細を提示してもらえますか。

月ごとにグループ化をした上でグループフッターを表示させ、そのグループフッターの中に月ごとの合計・累計を表示させています。

詳細セクション内の収入金額・支出金額については、コントロールソースはクエリに直接結びついており、どちらも集計実行はしていません。
残高欄はnz([収入金額],0)-nz([支出金額],0)で表示しており、集計実行は「全体」を選択しています。

グループフッター内の月ごと合計欄は、収入金額はnz(sum([収入金額]),0)で、集計実行はしない設定です。支出金額欄も同様です。残高欄の表示はありません。
グループフッター内の累計欄は、収入金額欄はnz(sum([収入金額]),0)で、集計実行は「全体」を選択しています。支出金額欄も同様で、このそれぞれのテキストボックスに「累計収入金額」「累計支出金額」という名前を付けています。残高欄はnz(sum([累計収入金額]),0)-nz(sum([累計支出金額]),0)で、集計実行はしない設定です。

よろしくお願いします。

タイトルRe^3: 月を限定してレポートを表示させたい
記事No171628
投稿日: 2016/10/29(Sat) 04:59
投稿者hatena
解決済: ON
状況が把握できました。下記のように設定してください。

月のグループヘッダーを表示させて、そこにテキストボックスを3つ配置して下記のように設定してください。

名前 前月累計収入金額
コントロールソース =DSum("収入金額","レコードソースのクエリ","日付<#" & [日付] & "#")
集計実行 しない

名前 前月累計支出金額
コントロールソース =DSum("支出金額","レコードソースのクエリ","日付<#" & [日付] & "#")
集計実行 しない

名前 前月残高
コントロールソース =[前月累計収入金額]-[前月累計支出金額]
集計実行 しない


※「日付」は実際のフィールド名に変更してください。


詳細セクションの「残高欄」は下記のように変更してください。

名前 累計
コントロールソース =Nz([収入金額],0)-Nz([支出金額],0)
集計実行 グループ全体
可視 いいえ

このテキストボックスの上に重なるように、テキストボックスを配置して下記のように設定。

名前 残高
コントロールソース =[累計]+[前月残高]
集計実行 しない

グループフッターの累計を表示するテキストボックスは下記のように設定。

名前 累計収入金額
コントロールソース [前月累計収入金額]+[収入金額計]

名前 累計支出金額
コントロールソース [前月累計支出金額]+[支出金額計]

名前 今月残高
コントロールソース [累計収入金額]-[累計支出金額]


フィールド名、テキストボックス名で情報が出てない部分は、適当な名前にしていますので、
該当する実際の名前に変更してください。


考え方は、前月までの残高をDSumで取得してそれとグループ内累計を足せば残高になる、ということです。

タイトルRe^4: 月を限定してレポートを表示させたい
記事No171629
投稿日: 2016/10/29(Sat) 21:32
投稿者ねぎおとこ
解決済: ON
ありがとうございます、イメージしていた通りのものが出来ました!

補足説明していただきたい部分があるのですが、

> コントロールソース =DSum("支出金額","レコードソースのクエリ","日付<#" & [日付] & "#")

このdsumの「"日付<#" & [日付] & "#"」の部分はどういう構造になっているのでしょうか?

タイトルRe^5: 月を限定してレポートを表示させたい
記事No171630
投稿日: 2016/10/30(Sun) 11:47
投稿者hatena
解決済: ON
> > コントロールソース =DSum("支出金額","レコードソースのクエリ","日付<#" & [日付] & "#")
>
> このdsumの「"日付<#" & [日付] & "#"」の部分はどういう構造になっているのでしょうか?

まず、「日付」の昇順で並んでいるというのが前提ですが、
グループヘッダーのコントロールソースを
=[日付]
とすると詳細の先頭行の日付が表示されます。
ということは、"日付<#" & [日付] & "#" の[日付]のその月の先頭の日付、
例えば "日付<#2016/10/01#" というような条件になります。
つまり、その日付以前のデータを抽出するという条件になります。
SQLでは日付は # で囲むというのが文法です。

タイトルRe^6: 月を限定してレポートを表示させたい
記事No171631
投稿日: 2016/10/30(Sun) 15:07
投稿者ねぎおとこ
解決済: ON
わかりやすい説明でとても助かりました。
色々とお答えいただきありがとうございました。

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る