Microsoft Accessの話。
昨日まで動いていたのに、今日はおかしい。

Access内のテーブルに連結したフォームで、フィールド計をコントロールソースにしたをテキストボックスをフッターに配置していた。
2つのテキストボックスは別のフィールドの合計を設定していて、差があれば、入力ミスと判断し修正を求めるようにしていた。
このコードで10年以上、使っていたが、急に差が計算されないで、スルーするようになってしまった。

連結フォームなので、差の判定をする前に、

Docmd.RunCommand acCmdSaveRecord

して、テキストボックは

Me.txtGoukei.Requery

して、比較したのだが、どうも両方のテキストボックスが「0」になっている様子。
結局、テキストボックスは使わないで、リンクテーブルの対象フィールドをDsumして計算するように修正した。こうするとチャント差が計算できる。

原因は良くわからないのだが、テキストボックスのコントロールソースになっている合計する部分が別スレッドで動作していて、コード側で参照する時、計算されていないのではないかと思った。

この手の比較計算はよく使っているので、プログラムを直さなければならない、、、