• 締切済み

口座残高の日締めの方法

お願いします。 Access2000で銀行口座管理用DBを作成中です。 テーブルは、(1)入金用(2)出金用(3)銀行登録(4)支払先登録(5)入金元登録の5種類。入金用に入金額、出金用に出金額がそれぞれ入ります。銀行口座の数は3つあります。 入金用・出金用のそれぞれのフォームで毎日取引を入力していきますが、入力がすべて完了したら日締め作業を行い、各口座の残高を算出して実際の銀行残高と照合したいと考えています。 残高を算出するためには、(1)前日残高(2)当日入金計(3)当日出金計が必要ですが、 1)前日残高は変数(毎日更新) 2)入金日計はクエリを使って集計 3)出金日計はクエリを使って集計 といったことになると思いますが具体的なプロシージャについてご指導いただけませんか? よろしくお願い致します。

みんなの回答

  • laputart
  • ベストアンサー率34% (288/843)
回答No.2

'関数宣言の部分 Dim db, db1, db2 As Database Dim rs(10) As Variant Dim date1 as Date '例えばダイアログボックスを開いて更新する日付を得る - 詳細は解説書参照 ' エラートラップをいろいろ設定する必要があります。またフォームのTEXTBOXに日付を入力する方法もあります。 date1=Inputbox("更新する日付を入力してください") Set db = CurrentDb '----入金集計Qというクエリーを読みに行く このクエリーは日付毎の集計である事---- rsname="入金集計Q" Set rs(1) = db.OpenRecordset(rsname, dbOpenSnapshot) rs(1).Findfirst "日付"=date1 Money1=rs(1)!金額 '----出金集計Qというクエリーを読みに行く このクエリーは日付毎の集計である事---- rsname="出金集計Q" Set rs(1) = db.OpenRecordset(rsname, dbOpenSnapshot) rs(1).Findfirst "日付"=date1 Money2=rs(1)!金額 '----残高記録Qというクエリーを読みに行き新しい日付のレコードを追加して計算する rsname="残高記録Q" Set rs(1) = db.OpenRecordset(rsname, dbOpenDynaset)  '<--- Dynaset(書き換え可能) 'ここの作業はいろいろあります。例えば日付が昇順に必ず並んでいるなら 一番最後のデータを読みに行けば良いことですが、考え方としては議論のあるところです。 rs(1).MoveLast Money3=rs(1)!金額  <----最後のレコードの金額 Money4 = Money3 + Money1 -Money2 <---新しい残高は更新前の残高+date1の入金-date1の出金 rs(1).AddNew <--- 新しいレコードの追加 rs(1)!日付=date1 rs(1)!金額=Money4 rs(1).Update  <--- 更新 備考 これだけのモジュールではエラーチェックなどは不完全です。 例えば2回更新をすると残高がどんどん更新されています。 よってdate1 例2003/6/30 での更新が既に行われたかどうかを チェックさせる必要があります。 逆に6/29の更新を忘れた場合も一番最後のレコードが6/28であった場合 その残高に6/30のデータを演算させる為6/29のデータが飛ぶ事に なります。これらのエラーチェックの方法はありますが、まず上記の骨組みについて 理解頂けますか? レコードセットの読み込みと書き込みに関する部分です。

jetstream
質問者

補足

Laputartさん有難うございます。 入金・出金・残高にそれぞれrecordsetを開き、Money4を計算して残高をupdateしていくわけですね。 これらは毎日のルーチン業務として実施することになりますが、非銀行営業日(例えば土日祝日など)が入った場合にはどう考えればいいのでしょうか? あと、残高はマスターとして常に更新されていくわけですが、例えばトランザクションテーブルに毎日の残高を蓄積させることは必要ないでしょうか? お手数おかけ致しますがよろしくご指導ください。

  • laputart
  • ベストアンサー率34% (288/843)
回答No.1

失礼ですがVBAはどの程度理解されていますか。 フォームに更新用ボタンを作成してその作業を全て プロシージャーで作成する方がいいですか。 それとも出来る部分は更新クエリーの実行とマクロの組み合わせのように視覚的にわかりやすい方がいいですか? どちらでも可能ですが....

jetstream
質問者

補足

laputartさんこんにちは。 VBAはまだ勉強中ですが記述された内容はわかります。 クエリとマクロの組み合わせもわかりやすいのですが、最終的にはVBでプロシージャに変換、作業としては「更新ボタン」で毎日処理できたらいいなと思います。 よろしくお願いします。

関連するQ&A

  • 残高を表示したい

    今までEXCELだった銀行口座データをACCESSで管理しようと思っています。 テーブルの構造は[ID][日付][内容][入金][出金][残高]です。 残高の計算は前日までの残高+入金-出金です。 クエリで計算すると思うので、色々やってみたのですがうまくいきません。 ご回答宜しくお願いいたします。

  • 預金残高の更新

    お尋ねします。 銀行預金の管理表をAccess2002で作成中です。 毎日、入出金があり、その結果として預金残高が更新されます。 レポートで預金管理表を作成しますが、項目としては、(1)前日繰越残高(2)当日入金額(3)当日出金額(4)当日繰越残高という4つの情報を表示します。 計算としては(1)+(2)-(3)=(4)という結果になりますが、「前日繰越残高」をうまく管理する考え方を教えて頂きたいのです。 預金テーブルに前日繰越残高を履歴として保持していくのか? それとも、クエリでその都度計算して求めればいいのか? よろしくお願いします。

  • アクセス関数(残高表示)

    アクセスの関数(残高計算)について教えてください。 金銭管理表を作成し、残高を表示したいのですが、個別に集計してしまうと上手く残高が表示されません。  最初にテーブルにてID(オートナンバー)、氏名(Aさん)、月日、適用、入金額、出金額、 2行目にBさん、3行目にAさん、4行目にAさん、5行目にBさん、6行目にBさん、 7行目にCさん・・・・・ とデーターを入力しました。そしてクエリにてテーブルを利用して残高を計算しました。 クエリのフィールドは新たに残高(計算式を入力)を作ったので、ID(オートナンバー)、氏名、月日、適用、入金額、出勤額、残高: CCur((NZ([入金額])+NZ(DSum("入金額","テーブル","ID<" & [ID])))-(NZ([出金額])+NZ(DSum("出金額","テーブル","ID<" & [ID])))) のようになっています。 さてこの段階では残高計算は上手くいきました。しかしながら目的の個別集計、たとえばAさんだけを抽出して残高を計算するにはなっていません。したがって、これを抽出条件で氏名をAさんと入力して絞り込んで残高を計算させると、残高の計算がうまくいかなくなってくるのです。 残高の計算式をどのように変更すればよいのかどなたか教えてください。どうぞ宜しくお願いいたします。 ID 氏名 月日  適用  入金額 出金額  残高 1 Aさん 5/01 文房具.........\0.........\300.......-\300 2 Bさん 5/03 食料品.........\0.........\500.......-\800 3 Aさん 5/04 入金........\1000...........\0.........\200 4 Aさん 5/10 CD.............\0.........\500.......-\300 5 Bさん 5/01 入金........\1000...........\0.........\700 6 Aさん 5/04 お菓子.........\0.........\200.........\500 7 Cさん 5/08 入金.........\500...........\0........\1000 残高はうまく計算されているが、個別に残高が集計されていません。 これをAさんだけを抽出条件で抽出すると ID 氏名  月日  適用  入金額 出金額  残高 1 Aさん 5/01 文房具.......\0........\300.......-\300 3 Aさん 5/04 入金......\1000..........\0.........\200 4 Aさん 5/10 CD...........\0........\500.......-\300 6 Aさん 5/04 お菓子.......\0........\200.........\500 となってしまい、残高が個別計算されなくなってしまいます

  • 銀行口座の残高がマイナスになっていますが…

    三井住友銀行の総合口座です。 毎日10日にクレジットカードの支払(引落)があるのですが、 残高が足りなかったため、引落後の残高がマイナスになっていました。 本当は前日の9日に、会社からの支払が入金される予定でしたが 予定通りに入金がなかったようです…。 (仕事での立替分を毎月請求して、毎月10日に会社から  支払われるのですが、今月は9日に入金して欲しい旨伝えてあり  担当者も9日に入金されます、と言ってくださったので  すっかりそれをあてにしてしまい、残高を増やしていませんでした) 過去の質問などで調べたら、定期を担保にした(無担保もあるようですが) 「自動貸越」というものによってカード利用額の引落がされたのでは… という所までは分かりました。 確かに、ネットバンキング画面で見ると、残高の横に 「お支払い可能残高」というのが200万円表示されています。 (現在は残高がマイナスなので、200万より少ないですが) これは口座の残高が足りない場合は200万まで支払できます、 ということですよね? それはわかるのですが、口座残高がマイナスになった場合 銀行からお金を借りていることになると思うのですが その場合の利息などがどうなっているのか、銀行のHPを見ても どこにそれが書いてあるのかわからず、確認ができません。 かなり高い金利がかかってしまうのでしょうか? 自分の確認不足とはいえ、残高がマイナスになったのは初めてで 少々慌てています。 (カードの引落ができなかったよりはマシなのでしょうか…?) 少なくとも今日(10日)中には、昨日振込されなかった 会社からの精算額が入金になるはずなのですが、心配なので 自分の他の銀行の口座からお金を移そうと思っています。 残高がプラスになるよう口座にお金を入れておけば 特にその他の手続き等はしなくても、借りたお金は返しましたよ、 ということになるのでしょうか。 (金利がかかるのは残高がマイナスになっていた期間だけで  残高を戻せばそれだけでもう大丈夫なのでしょうか) ご存知の方がいましたら教えてください。 (あるいは、三井住友銀行HPで確認できるURLがわかれば  そちらで確認したいので教えてください)

  • 1日の売り上げと口座の残高について

    今年から確定申告ができるようになるために、会計ソフトで帳簿付けを始めました。 はじめてやる事なので分からない事だらけなのですが、 【家賃按分する場合】 12か月分の家賃-畳一畳分の面積=として計算しようと思っていますが、 畳一畳分って面積いくつくらいとした方がいいのでしょうか? 正しくは、建物の総面積-畳一畳分の面積ですが、それで出た面積を 12か月分の家賃から引くという計算でいいでしょうか? 【売上の入力について】 1日の売り上げは書いていなく、実際銀行口座に入金された金額を入力しています。 1日の売り上げを書くと、今現在の銀行口座の残高が変わって来てしまうので、 実際の残高と違う額になってしまいます。 今のままでいいでしょうか? それとも、1日の売り上げを書くことは事業の動きを見る上で必要でしょうか? 帳簿付けをする上で必須な事ですか? よろしくお願いします。

  • ACCESSで残高のある請求書作成で困っています

    アクセスを使って納品伝票を作っているのですが、 納品書は作れたのですが、請求書を作る所で困ってしまいました。 請求書には得意先の月ごとの請求額と、前月の残高を印刷したいのですが、集計した請求額と残高をうまくレポートに表示できません。 現在、納品テーブルから追加クエリを用いて 取引テーブルに一月ごとの請求額を集計して追加しています。 納品テーブル(得意先 日付 売上)  追加クエリにて… 取引テーブル(得意先 日付 請求額 入金(残高))    (日付はその金額を算出、あるいは入力した日です) 入金もこのテーブルに追加しているのですが、残高で困ってしまいました。 残高はSum(請求額)-Sum(入金額)で求められると思うのですが、このデータを格納する場所がわかりません。 できれば取引先テーブルの入金フィールドの隣にでも追加できれば楽なのですが…(できればそのままレポート作れますよね)。 今は残高テーブルを新たに作り、そこに追加クエリで追加しています。 残高テーブル(得意先 日付 残高) 現在、得意先の情報を入力する得意先フォームのサブフォームに取引テーブルの内容を表示するようにしてあります。 入金もこのフォームから行っているのですが、このフォームから表示している得意先のIDと日付を元に、取引テーブルの請求額と残高テーブルの残高を参照してレポートは作成できますか? フォーム上のコマンドボタンから印刷しようと思い、 マクロの条件式をいろいろ変えたりしてみましたがうまくいきません。 どうもレポートの理解がまだ足りない様です。 かなり見当違いの事をしているのかもしれませんが、 どうか宜しくお願い致します。           

  • Accessで金銭管理をするときの残高の表示方法

    最近アクセスを使い始めた初心者です。 以下のような複数名(人数が増えることもあります)についての金銭管理を行っています。 ID   氏名ID    月日     氏名    氏名番号   適用    入金額   出金額    残高 1    1   2009/01/25   Aさん       1001    入金     3000     0     3000 2    1    2009/01/25    Aさん      1001   お菓子       0    300     2700 3    1    2009/01/26   Aさん       1001    切手       0    100     2600 4    1    2009/01/30   Aさん       1001    修理       0    4000     -1400 5    1    2009/02/01   Aさん       1001    入金    6000       0     4600 9     1     2009/02/20   Aさん       1001      パン       0      100     4500 11   1     2009/02/25    Aさん     1001     入金     200         0     4700 6     2    2009/01/10     Bさん    1002      入金     1000        0     1000 7    2    2009/01/11   Bさん      1002      雑誌        0       600      400 8     2    2009/03/25    Bさん      1002    鉛筆        0       500      -100 10    3    2009/03/10    Cさん     1003    入金         500       0       500 アクセスのクエリ場面で残高に 残高: DSum("Nz([入金額],0)-Nz([出金額],0)","テーブル","([月日]<#" & [月日] & "# or 月日=#" & [月日] & "# and ID<=" & [ID] & ") and 氏名='" & [氏名] & "'") のように計算を行わせて上記のような計算結果を得ました。このあとAさん、Bさん、Cさんのそれぞれ最後の残高だけを次のように表示するようにプログラムしたいと思っています。 ID   氏名ID   月日    氏名    氏名番号   適用   入金額   出金額    残高 11    1   2009/02/25    Aさん     1001     入金     200       0      4700 8     2   2009/03/25   Bさん      1002     鉛筆      0      500      -100 10    3    2009/03/10   Cさん     1003    入金        500       0      500 例えば今日(3月25日)までの残高計算をしようとして、月日の抽出条件に=Date() と条件を入れても ID   氏名ID   月日    氏名    氏名番号   適用   入金額   出金額    残高 8      2   2009/03/25   Bさん      1002    鉛筆      0     500     -100  となりBさんのデーターしか表示されません、なんとかAさんとCさんのデーターも表示したいのですが、Aさんが2月25日、Cさんが3月10日までしか、まだデーターがないのでどうにも表示されないようです。 どうしたら3人とも表示できるようになるのか、どなたか教えてください。 どうぞよろしくお願いいたします。

  • 死んだ時のfx口座と銀行口座ってどうなりますか?あ

    死んだ時のfx口座と銀行口座ってどうなりますか?ある人がfxやってるとします。ある人の銀行口座使って出金入金してるとします。 fxをポジション決済してないままこのある人が死んだ時どうなるんですか? また、このある人の血縁関係者はこのfx口座と銀行は引き継げるんですか? どうやらブロードネットというfx業者は同一名義人の銀行口座しか受け付けないそうです。 つまり、その血縁関係者子供であっても振り込んだり出金できないそうです。 この場合どうなりますか?出金しようにも死んだ人間は銀行口座消えてしまいます。そうすると出金できない? またこういう馬鹿なことないように他人の銀行口座でも出金入金できるfx業者知ってますか? まとめますと、 死んだらfx口座はどうなるのか?親でも息子でも引きつげないのか? 他人名義の銀行口座で出金入金できるfx業者は? です。詳しい方教えてください。

  • 口座引き落とし

    これまで自分でお店や金融機関にいき入金していた 口座引き落としにという、案内くるようになった それすると値上げし放題でも解約しにくくなるのでしょうか 口座というのは一般的に残高はいつの時点でそのお金が あれば良いのでしょうか、最悪前日に残高あれば 問題にはなりませんか、当日に入金するというのは 現実的ではないように思います。 宜しくお願いします。

  • 証券口座と銀行口座

    マネックス証券で特定口座を開こうと考えておりますが、いまいち証券口座と入金銀行口座、出金銀行口座の関係がわかりません。即時入金サービスを例えばA銀行のインターネットバンキングで行う場合、A銀行の普通口座にお金をある程度預けておいて、欲しい株がみつかったら普通口座→インターネットの口座→証券口座のように動かすのでしょうか?こんなことしなくても証券口座に相当額最初から入れておけば売買はできるのでしょうか? では出金について、例えばB社の株を売って生じた売却益は証券口座に入るのでしょうか?それともインターネットの口座なのでしょうか? 自分でもわけが分からなくて書いてしまいましたが、詳しく教えていただけないでしょうか?