私のお気に入りの解決策は、常にレコードセットに戻って、対応する合計を計算することです。これは、フォーム レベルの合計が正しく更新されているかどうかを常に確認できるとは限らないためです (何らかの理由で保留中のコントロール/レコードセットの更新が常に存在する可能性があります)。その後、DSUM および関連機能を使用する可能性があります。
例:
dsum(Forms("Bill").recordsource, "unitPrice*lineQuantity")
もちろん、一時的なレコードセットを定義して請求書ごとの合計金額を取得するなど、より複雑なソリューションを使用することもできます。
Dim rs as DAO.recordset, _
myBillNumber as variant, _
myBillAmount as variant
set rs = currentDb.openRecordset(_
"SELECT billNumber, sum(unitPrice*lineQuantity) as totalPrice FROM " & _
Forms("Bill").recordset.name " GROUP BY billNumber")
myBillNumber = rs.fields(0)
myBillAmount = rs.fields(1)
一見難しそうに見えますが、慣れてしまえば迷わず使えますし、今のような悩みを抱えることもありません。