dポイントプレゼントキャンペーン実施中!

これまでExcelで会計をしていましたが、Accessに移行しようと作業をしています。
Accessはまだ始めたばかりです。

現金、○○銀行預金、××銀行預金等、支払区分と、
売上、新聞図書費、車両費等、勘定区分を、
それぞれ明記した、全ての取引をまとめたテーブルがあります。

支払区分ごとの残高、および勘定区分ごとの累計を、それぞれの取引が終わる度、集計したいです。
例えば、○月×日、現金5000円の売上、等の取引があったら、
現金の残高はいくら、売上の累計はいくら、
といった具合です。

Excelでは、SUMIFを使って容易に集計できたのですが、Accessではうまくできません。
今の不完全なSQLは以下の通りです。
日付やIDを使って表示順を出し、DSumで、その日までの全ての取引の残高(あるいは累計)を算出することはできたのですが、
さらに支払区分ごと、あるいは勘定区分ごとに絞って残高を表示するのは、どうすればいいのでしょうか?
また、Like演算子を使って、支払区分ごと、あるいは勘定区分ごとに抽出すると、残高がエラーという表記になってしまいました。この原因は何でしょうか?


SELECT 帳簿.日付, 科目マスタ.科目 AS 支払区分, 科目マスタ_1.科目 AS 勘定科目, 摘要マスタ.摘要, 取引店舗.販売区分, 摘要マスタ.按分, Round(IIf([貸借]=True,[金額],0)*[按分],0) AS 借方, Round(IIf([貸借]=False,[金額],0)*[按分],0) AS 貸方, DSum("[借方]-[貸方]","帳簿詳細","表示順<='" & [表示順] & "'") AS 残高, [日付] & Format([支払ID],"00") & Format([帳簿.摘要ID],"0000") & Format([店名ID],"000") AS 表示順
FROM (摘要マスタ LEFT JOIN 科目マスタ AS 科目マスタ_1 ON 摘要マスタ.科目ID = 科目マスタ_1.科目ID) RIGHT JOIN (科目マスタ RIGHT JOIN (取引店舗 RIGHT JOIN 帳簿 ON 取引店舗.販売ID = 帳簿.店名ID) ON 科目マスタ.科目ID = 帳簿.支払ID) ON 摘要マスタ.摘要ID = 帳簿.摘要ID
ORDER BY [日付] & Format([支払ID],"00") & Format([帳簿.摘要ID],"0000") & Format([店名ID],"000");

一体どのように改善すればいいのか、お分かりになる方がいらっしゃれば、どうか教えてください。

A 回答 (1件)

Accessでは、テーブルに残高を表示することは出来ませんでした。

桐ソフトでは#直前値という関数があって、[収入][支出][残高]が容易にテーブルに作成できました。桐とAccessのデータベースエンジンの違いで出来ないようです。私はテーブルに残高を表示することを諦めて、出納簿レポートの、各行に[収入累計][支出累計]項目を設け、[残高]=[収入累計]-[支出累計]で残高を算出し、[収入累計][支出累計]を非表示にして 出納簿に残高を表示しました。
テーブルには表示できませんが、レポートに残高は工夫次第で表示できます。SQLも使わず容易に出来ました、参考になれば幸いです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
そうですか、Accessでは無理なのですね。
でもレポートで対応できるとのことで、やってみようと思います。
どうもありがとうございました。

お礼日時:2015/04/15 23:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!