Microsoft Access 掲示板

繰越残高の作成

3 コメント
views
4 フォロー

T_出納(テーブル)

フィールド名データ型
月日:日付/時刻型
入金額:数値
出金額:数値
区分:数値
金融機関:短いテキスト型

これを基に(ユニオンクエリー)

select
金融機関,year(月日) AS 年,month(月日)AS 月,"入金" AS 分類,入金額 AS 入出金額 From T_出納
UNION ALL SELECT
金融機関,year(月日) AS 年,month(月日)AS 月,"出金", 出金額 FROM T_出納;

を作成後(クロス集計)

TRANSFORM Sum(Q_出納.入出金額) AS 入出金額の合計
SELECT Q_出納.年, Q_出納.金融機関, Q_出納.分類, Sum(Q_出納.入出金額) AS [合計 入出金額]
FROM Q_出納
WHERE (((Q_出納.年)>2014))
GROUP BY Q_出納.年, Q_出納.金融機関, Q_出納.分類
ORDER BY Q_出納.年 DESC , Q_出納.金融機関, Q_出納.分類 DESC 
PIVOT Q_出納.月;

これを基に(レポート作成)し
金融機関のフッターに非連結のテキストを作成
コントロールソースを

前年繰越: =Nz(DSum("[入金額]-[出金額]","T_出納","金融機関='" & [金融機関] & "' And 月日<#" & [年] & "/1/1#"),0)
1月の欄: =Nz(DSum("[入金額]-[出金額]","T_出納","金融機関='" & [金融機関] & "' And 月日<#" & [年] & "/2/1#"),0)

などと、するも値は「0」となります。
ご指導をお願いできませんでしょうか。

※管理者が書式を読みやすいように編集しました。

初老の人
作成: 2019/03/31 (日) 14:03:10
最終更新: 2019/03/31 (日) 14:50:04
通報 ...
1
hatena 2019/03/31 (日) 14:59:40 修正

前年繰越のテキストボックスのコントロールソースの式を、

=DSum("Nz([入金額],0)-Nz([出金額],0)","T_出納","金融機関='" & [金融機関] & "' And 月日<#" & [年] & "/1/1#")

としたらどうでしょうか。

2
初老の人 2019/03/31 (日) 15:38:47 c7366@58e94

早速のご指導ありがとうございます。
計算がされるようになりました。
Dsum関数とNz関数
理解してたつもりですが、
これを機会に、また少しづつ勉強したいと思います。
まずはお礼にて!

3

一応、解説しておきます。
[入金額]-[出金額] とすると片方がNullだと、演算結果もNullになってしまいます。
その結果、DSumで集計すると 0 になります。

Nz([入金額],0)-Nz([出金額],0) とNullを0に変換することで、数値として演算できます。