• ベストアンサー

残高を表示したい

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

質問者が選んだベストアンサー

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

>クエリを2回実行で残高が出せるようにはなった 当日の残高を算出するクエリに前日残高を算出するクエリをテーブル追加したので1回実行すると当日の残高が算出されるのではないでしょうか。 >残高を日付指定をして出したいのですが、(例えば2005/10/1から2005/10/31など)パラメータが出るようにして、そこに指定する日付を入力できるようにしたいのです。 残高の日付指定は残高のクエリの日付の抽出条件に Between [開始日] And [終了日] とすれば[開始日]と[終了日]([開始日]と[終了日]はお好きなメッセージを入れてください)のパラメタダイアログが表示されますのでそこで日付を入力してください。 当日の残高を算出するクエリに前日残高のクエリがテーブル追加でネストされているので当日残高のクエリを実行すると前日残高のクエリの[開始日]と[終了日]のパラメタダイアログが表示されます。

kumafukuro
質問者

お礼

>当日の残高を算出するクエリに前日残高を算出するクエリをテーブル追加したので1回実行すると当日の残高が算出されるのではないでしょうか。 その通りです。クエリを2つ作成したのでそのように書いてしまいました・・。 それとパラメータで日付抽出できるようになりました。 色々とありがとうございました!大変助かりました。

その他の回答 (1)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

>テーブルの構造は[ID][日付][内容][入金][出金][残高] テーブルは[ID][日付][内容][入出金区分][金額]こんな感じだと思いますが。(1つのレコードで[内容]が同じで入金と出金が一緒に発生する事はないと思うので) 残高は通常ではテーブルに持ちません。残高は算出すれば良いだけなので。 例えば前日の入金を1件入力を忘れた場合などそれ以降の入力されたレコードの残高を再計算し更新しなくてはならなくなります。(余分な処理が増える) DSumを使ってテーブル内のレコードを合計させてフォーム上などでその値を使って計算し残高を算出しフィールドに保存する事もできますが先の理由と同じでお勧めはしません。 >残高の計算は前日までの残高+入金-出金です。クエリで計算すると思うので、色々やってみたのですがうまくいきません テーブルが[ID][日付][内容][入金][出金]を前提とした場合 簡単にやるには前日までのレコードを抽出しグループ化(集計)させ入金・出金を合計し新しいフィールドに 前日残高:[入金]-[出金] として残高を出すクエリを作ります。 別に今日の入金・出金のレコードを抽出しグループ化して入金・出金を合計するクエリを作りそのクエリに先に作った前日残高を算出するクエリをテーブルの表示から追加しクエリのフィールドに前日残高を追加します。 新しいフィールドに 当日残高:[前日残高]+[入金]-[出金] として演算させれば算出できます。 これが一番簡単ではないでしょうか。

kumafukuro
質問者

補足

回答ありがとうございます。 残高を日付指定をして出したいのですが、(例えば2005/10/1から2005/10/31など)パラメータが出るようにして、そこに指定する日付を入力できるようにしたいのです。 回答頂いた内容を参考にして、クエリを2回実行で残高が出せるようにはなったのですが、日付指定の方法がわかりません。 申し訳ありませんがアドバイス頂けると助かります。 宜しくお願いします。

関連するQ&A

  • 口座残高の日締めの方法

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

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

    アクセスの関数(残高計算)について教えてください。 金銭管理表を作成し、残高を表示したいのですが、個別に集計してしまうと上手く残高が表示されません。  最初にテーブルにて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 となってしまい、残高が個別計算されなくなってしまいます

  • 預金残高の更新

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

  • 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人とも表示できるようになるのか、どなたか教えてください。 どうぞよろしくお願いいたします。

  • SQLで残高計算

    現在 id-日付-入金-出金-残高 という5項目あるデータベースがあります。 入出金額を変更した際など、日付でソートをして、すべての行の残高データを再計算し、データを更新したいのですが、どのようなSQL分を使えばよろしいのでしょうか。 ご教授願います。

    • ベストアンサー
    • MySQL
  • アクセス クエリでの残高計算について

    アクセスクエリでの残高計算について 返金日を入力した場合、伝票日を基準とした残高がマイナスとなる式を教えてください。 現在のクエリ(ID~返金日)の状態です。 ID......伝票日....会社....銀行......出金額......返金日..........残高 1..........4/1.............A..........あ..........100円..........5/10.............100円 2..........4/15..........B..........あ..........400円..........空白.............500円 3..........4/30..........C..........い........1000円..........5/15..........1500円 4..........5/10..........B..........い...........300円..........5/20..........1200円 5..........5/14..........A..........い..............50円..........空白..........1250円 6..........5/15..........A..........あ..............50円..........空白............300円 【補足説明】 ID4:ID1でAが100円返金済みなので1500+300-100=1200円となる ID6:ID3でCが1000円返金済みなので1250+50-1000=300円となる (1)返金日に日付けを入力するとマイナスとなる残高計算をしたいと考えていますが可能でしょうか? ・可能な場合、数式?を教えていただきたいです。 ・不可能な場合、どういった解決策があるか教えていただきたいです。 (2)また、A会社を抽出後に、銀行別で(1)と同じように残高を表示させたいと考えていますが、 どのように、(1)の表よりどのように加工すれば、いいのでしょうか? (簡単にでもいいので是非お願いします) 今回アクセスを初めて使い、苦戦しております。 どうぞ、ご回答のほう、よろしくお願いいたします。

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

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

  • エクセルの出納帳の残高表示

      A   B    C  入金 出金 残高 1 2 3 レイアウトはこんな感じです。 C2に残高を出すとしたら数式は「=C1+A2-B2」にして、C3以降の残高は相対参照で出してます。 これを、入金や出金の列に数字を入力すると自動的に残高が計算されてそれが残高の列に表示されるように設定することが可能の様ですが、どうしてもその方法がわからないのです。ぜひ教えてください!!

  • エクセルで月毎の集計

    エクセルで銀行口座の管理をしようとしています。 A列に日付、B列に出金、C列に入金、E列に残高があります。(基本的に通帳の並びと同じです。) で、月ごとの出金、入金の管理をしたいと考えております。 各列ともにどんどん下の行に出金/入金を入力していくつもりなので、A列のとある月だけの出金、入金を抽出合計できたらいいなぁと思っています。何かよい方法(数式?)をご教示頂きたくよろしくお願いします。

  • 日付は最大で、それに対する残高を抽出するには?

    アクセスのクエリについて質問です。 宜しくお願いいたします。 テーブル1の構成 フィールド名 ID(オートナンバー) 会社名 (テキスト型) 最終更新日(日付型) 残高(数値型) --------------------------------- ID 会社名 最終更新日  残高 1 A会社  2012/11/02 8000 2 B会社  2012/11/01 5000 3 A会社  2012/11/01 10000 4 B会社  2012/10/31 12000 -------------------------------- です。 クエリで、最終更新日が一番新しい残高を返したいのですが どのようなSQL文を作ればよろしいでしょうか? 結果としては、 会社名 最終更新日 残高 A会社 2012/11/02  8000 B会社 2012/11/01  5000 と選択クエリで表示させたいです。 ---------------------------------------------------------------- SELECT テーブル1.会社名, Max(テーブル1.最終更新日) AS 最終更新日の最大, テーブル1.残高 FROM テーブル1 GROUP BY テーブル1.会社名, テーブル1.残高; ---------------------------------------------------------------- としたら、 会社名 最終更新日の最大 残高 A会社 2012/11/02    8000 A会社 2012/11/01    10000 B会社 2012/11/01    5000 B会社 2012/10/31    12000 のように、全ての日付のデータが表示されてしまいました。 最終更新日以外の日付は要らないです。 クエリのデザインビューで集計を「先頭」にしても同じでした。

専門家に質問してみよう