テーブルの縦計算②

Pocket

ただ単に縦計を出すだけでは使い勝手が悪いので、少し手直しします。
データに修正があった場合、合計が訂正できるようにします。
最初にテーブルに摘要のフィールドを作り、ここに合計のデータである
旨をテキストで入力します。

一記事前のAddNewの部分を次のように変更します。
rs.AddNew
rs!A商品売上 = DSum(“A商品売上”, “テーブル”, “日付<=#5/31#”)
rs!B商品売上 = DSum(“B商品売上”, “テーブル”, “日付<=#5/31#”)
rs!摘要 = “5月売上合計”
rs.Update

これで合計を計算したレコードについては、5月売上合計が適用に入ります。
この摘要があるレコードのデータを更新します。

Private Sub コマンド12_Click()
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset

Set cnn = CurrentProject.Connection
Set rs = New ADODB.Recordset

rs.Open “テーブル”, cnn, adOpenKeyset, adLockOptimistic

rs.MoveFirstDo Until rs.EOF

If rs!摘要 = “5月売上合計”  Then

rs!A商品売上 = DSum(“A商品売上”, “テーブル”, “日付<=#5/31#”)

rs!B商品売上 = DSum(“B商品売上”, “テーブル”, “日付<=#5/31#”)

rs.Update

Exit Sub

End If

rs.MoveNext

Loop

rs.AddNew

rs!A商品売上 = DSum(“A商品売上”, “テーブル”, “日付<=#5/31#”)

rs!B商品売上 = DSum(“B商品売上”, “テーブル”, “日付<=#5/31#”)

rs!摘要 = “5月売上合計”

rs.Update

rs.Close

Set rs = Nothing

cnn.Close

Set cnn = Nothing

End Sub

実行結果です。

摘要に5月売上合計とあった場合は、レコードを追加するのではなくDsum関数で再計算を
かけます。計算後はExitSubでそれ以下のコードを実行しないようにします。

こんな形で合計を常に最新の状態におくことができます。

=====================================
4月からNHKのラジオ英会話を始めました。いまのところ何とかこなせております。
やってみて思うことは、随分前に勉強した英語の知識がまだまだ頭に残っている
んだなということです。
単語もかけないけど見れば意味が分かるものがほとんど。
少しうれしい気分になります。

本日も最後までおよみいただきありがとうございます。