これはVBAの問題ではなく、CPUとかの問題かも知れないが、こういう事象が起こっている。

Accessでログを作成し、そのログにはそのときのタイムスタンプを100分の1秒で、更に直前に出したログから何秒経ったかをこれまた100分の1秒で表示している。
タイムスタンプはTimer関数を使って取得している。この関数は0時からの時間を秒で表示する。小数部がミリ秒になる。よって、ミリ秒はFix関数で落とし、そこから時分秒に直している。
このTimer関数はSingleを返す。また、小数部のいらないゼロは省かれる。.10ではなく.1 .00ではなく、この場合は小数点すら省かれる。

さて、この小数点すら省かれた際に、その値をFixでLongへ入れた際に、数字が1小さくなることがたまにあるようなのだ。

 nTimer = Timer
 nTime = Fix(nTimer)

等とした場合、例えば nTimer が 84575 だとすると、こちらとしては nTime には 84575 を期待するが、84574 になることがある。Intでも同様である。
仕方ないので一度 String 型に変換してから小数点の有無を見て、という処理でごまかした。

何か根本的に間違ったことをしているのだろうか?ちょっとした謎である。