VBA MSAccessプラットフォームに、困惑しているルーチンがあります。私がしているのは、レコードセットをループするときに金額フィールドを合計することだけです。
TempAmountという変数を宣言しました(ループするときに合計を保持します)。テーブルのフィールド名は、rsBilledというレコードセットではBilledAmountと呼ばれます。
ループが始まると、TempAmountはゼロになります。ループが進むにつれて、BilledAmountをTempAmountに追加します。
これがコードのモックアップです。
Dim TempAmount as Double
TempAmount = 0
While NOT rsBilled.EOF
TempAmount = TempAmount + rsBilled.Fields("BilledAmount")
rsBilled.MoveNext
Wend
(次に、合計を格納する別のテーブルにTempAmountを書き込みます。)
これですべてが正常に機能します。TempAmountとBilledAmountが反対の量であり、ゼロを生成する場合を除きます。
つまり、TempAmountが15.25でBilledAmount = -15.25の場合、結果はゼロになります。しかし、それは起こりません。代わりに、2.123423523E-10のようなワイルドな拡張表記値を取得します。
繰り返しますが、これは、正の値が反対の負の値に追加されたために結果がゼロに等しくなる場合にのみ発生します。
手がかりはありますか?