電子書籍の厳選無料作品が豊富!

これまで桐で経理簿を作って、一括処理で処理していましたが、このたびAccessを使うことになりました。
桐には、#直前値いう関数があり重宝しておりましたが、アクセスには該当する関数が見あたりません。
出納簿のフィルドを次のようにした場合、残高欄はどう設定したらよいでしょうか。
[日付],[摘要],[収入],[支出],[残高]
 残高は、前日の残高+収入-支出  で算出されますが、アクセスのテーブルには計算式を入れるコントロールソースがありますが、どのような計算式になるでしょうか教えて下さい。
 

A 回答 (4件)

レポートの詳細の欄にテキストボックスを2つ配置してください。

仮にテキストボックスの名前を[収入累計]、[支出累計]とします。[収入累計]のコントロールソースを[収入],[支出累計]のコントロールソースを[支出]とします。2つのテキストボックスのプロパティのデータで集計実行の欄を「全体」にします。[残高]のコントロールソースを[収入累計]-[支出累計]として下さい。そして[収入累計]、[支出累計]のプロパティで可視を「いいえ」にして下さい。これで残高の計算ができると思います。
    • good
    • 0
この回答へのお礼

早速教えていただいて有り難うございました。
レポートで[収入累計]-[支出累計]=[残高]了解いたしました。
出納簿テーブルに表示は無理というものでしょうか。
かけだしのACCESSなものですから苦労しています。
大変参考になりました。

お礼日時:2006/02/01 17:11

#3です。



すみません、Bの方は、入力ができないみたいです。
(前にやったときは、できたと思ったのですが、記憶ちがいかな?)

一応、手順を書いておきます。

1.クエリを作ります
 select t1.id, t1.日付, t1.入金, t1.出金,
   (select sum(t2.入金) - sum(t2.出金) from tbl as t2 where t2.id<=t1.id)
  from tbl as t1;

 をSQLビューで入力して下さい(全角スペースは直して下さい)

2.このクエリを元にしてフォームを作ります。



AのVBAを使う方法の概要は

1.テーブルに累計フィールドを追加
2.フォームのイベント(フォームのオープン時、金額項目の移動時)でテーブルの累計をVBAで再計算する。
(VBAで1レコードづつ書き換えるより、SQLでまとめて書き換えた方が速いと思います)
3.フォームの累計用コンポーネントをrequeryする

となります。

今ちょっと時間と資料がないので、申し訳ないですが詳細は省かせてもらいました。
    • good
    • 0
この回答へのお礼

早速教えていただいて感謝申し上げます。
処理のイメージがわかりましたので、じっくり研究させていただきます。アクセスのクエリは昔のR:BASE5000にそっくりで懐かしい思いです。
大変参考になりました。

お礼日時:2006/02/04 16:46

どうしても、ということなら、



A.VBAなどのプログラムを使ってもいい
B.テーブルにレコードをソートするためのキーがある
 (同一日付でレコードが1件しかないのであれば、「日付」をキーにできます)

のどちらかの条件をみたしていれば、できなくもありませんよ。

*それぞれで、方法が違います

この回答への補足

いまVBAの勉強中です。是非使ってみたいです。
テーブルには取引毎にIDがついておりますので、ソートはできます。
どちらも教えていただければ、参考にしたいと存じます。

補足日時:2006/02/02 19:10
    • good
    • 0

拙い説明でしたが分かって頂けたようでホッとしました。


ところでテーブルに残高を持つことは出来ません。
あらかじめ残高を計算しておいて入力は出来ますが、プリントする時点でデータ並べ替えて印刷したらとんでもない結果になってしまいます。
残高はやはり必要なとき計算をして見ることができれば良いと思います。
    • good
    • 0

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

関連するカテゴリからQ&Aを探す