Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Access 2016)
テーブルの数値を条件で行ごとに集計
投稿日時: 20/04/03 16:42:21
投稿者: miyama2305

テーブル(tba)は以下です
工事NO/日付/福利厚生費/外注費/残高
300---/1月5日/500-----/------/500
300---/1月6日/--------/100---/600
300---/1月7日/--------/200---/800
以下のコードで計算して残高を表示します。
工事NOは同一の場合です。
Sub zanndaka()
Dim rumSum As Currency
Dim RS As DAO.Recordset
Set RS = CurrentDb.OpenRecordset("tba", dbOpenTable)
Do Until RS.EOF
RS.Edit
rumSum = rumSum + (Nz(RS![福利厚生費], 0) + Nz(RS![外注費], 0)
RS!残高 = rumSum
RS.Update
RS.MoveNext
Loop
RS.Close
Set RS = Nothing
End Sub
 
お願いですが工事NOごとに残高を計算するためのご指導をお願いします
工事NO/日付/福利厚生費/外注費/残高
300---/1月5日/500-----/------/500
300---/1月6日/--------/100---/600
300---/1月7日/--------/200---/800
301---/1月5日/200-----/------/200
301---/1月6日/300-----/------/500
301---/1月7日/--------/200---/700
305---/1月5日/--------/100---/100
305---/1月6日/300-----/------/400
日付は昇順で表示され、工事NOも昇順で表示しています。
 
この結果を工事NOごとに連続して印刷するためです
よろしくお願いします。
テーブル(tba)を表示するときに残高計算して表示出来れば
いいのですが、私の能力ではこの方法しか考えられませんでした。
 
 
 
 
 
 
 
 
 
 
 
 
 

回答
投稿日時: 20/04/03 17:30:10
投稿者: WinArrow
投稿者のウェブサイトに移動

参考になるWEBページを紹介します。
 
https://www.accessdbstudy.net/entry/20080514/p1#サブクエリで求める場合-1

投稿日時: 20/04/06 10:59:48
投稿者: miyama2305

WinArrow様
ありがとうございます。
 
時間を頂戴します

回答
投稿日時: 20/04/06 11:24:45
投稿者: hatena
投稿者のウェブサイトに移動

下記で汎用関数を紹介しています。
 
累計値をテーブルに自動入力する関数 - hatena chips
https://hatenachips.blog.fc2.com/blog-entry-443.html
 
これを使うと、下記のコード1行でご希望の処理ができます。
 

SetCumulativeTotal "Nz(福利厚生費)+Nz(外注費)","残高","tba","工事NO","日付"

 
使い方の詳細は上記リンク先を参照ください。
 

投稿日時: 20/04/10 13:51:08
投稿者: miyama2305

WinArrow様
hatena様
遅くなり申し訳ございません。
 
お二方のコードを試行錯誤しました。
新たなる問題が発生したため、
改めましてご相談します