• ベストアンサー

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

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

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

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

氏名も条件に加えてやらなきゃだめですね 残高: DSum("Nz([入金額],0)-Nz([出金額],0)","テーブル","ID<=" & [ID] & " and 氏名='" & [氏名] & "'") だけどID順だけでいいいの? 日付順、日付が同じならID順とするところでは? 残高: DSum("Nz([入金額],0)-Nz([出金額],0)","テーブル","([月日]<#" & [月日] & "# or 月日=#" & 月日 & "# and ID<=" & [ID] & ") and 氏名='" & [氏名] & "'")

himawri170510
質問者

お礼

とても役に立ちました。ありがとうございました。

その他の回答 (1)

  • x0000x
  • ベストアンサー率52% (67/127)
回答No.1

今晩は。 データからAさんの入出金と残高の整合性が表示できれば良いなら、 こんな感じです。 以下のSQL文をクエリのSQLビューに貼り付けてください。 SELECT T1.氏名, T1.月日, T1.適用, T1.入金額, T1.出金額, (SELECT sum(入金額-出金額) as 残高 FROM T1 AS TZ WHERE 氏名 = 'A' AND TZ.ID <= T1.ID) AS 残高 FROM T1 WHERE T1.氏名='A'; ※テーブル名、氏名の"A"は適当置き換えてください。 ※DB値のNULLについては、考慮してません。(NZ())などで対処してください。

himawri170510
質問者

お礼

今回のアドバイスをきっかけにSQL文を勉強することができました。ありがとうございました。

関連するQ&A

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

  • 残高を表示したい

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

  • SQLで残高計算

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

    • ベストアンサー
    • MySQL
  • Accessで計算の方法

    Excelはある程度出来ますが、Accessは超初心者です。教えてください。 計算式はフィールド名を使って行うようですが、上の行のフィールドの数字と今の行の数字を加算・減算などするときはどのような式になりますか? 例えば、「この行の預金残高」=「上の行の預金残高」+「この行の入金額」-「この行の出金額」、の場合は? フィールド名は、[預金残高]、[入金額]、[出金額]としましょう。

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

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

  • アクセス クエリでの残高計算について

    アクセスクエリでの残高計算について 返金日を入力した場合、伝票日を基準とした残高がマイナスとなる式を教えてください。 現在のクエリ(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)の表よりどのように加工すれば、いいのでしょうか? (簡単にでもいいので是非お願いします) 今回アクセスを初めて使い、苦戦しております。 どうぞ、ご回答のほう、よろしくお願いいたします。

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

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

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

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

  • 預金残高の更新

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

  • Excelで作成する家計簿の残高欄に使用する関数について

    家計簿をExcelを使い作成しています。入金・出金した後の残高欄(金額)をそのまま最終行に移行(転記)したいのですが、どの様な関数を利用すれば簡単に移行(転記)出来ますか? 事例:   日付    入金   出金   残高   2/23   10,000       10,000   2/25         5,000    5,000 { 数行が空欄 }     (月末)            5,000 [転記]

専門家に質問してみよう