Dies liegt daran, dass alle Ereignisse in der grafischen Benutzeroberfläche in einem einzigen "Event Dispatch Thread" ausgeführt werden, und die durch Ziehen verursachten Mausereignisse dazu führen, dass der Timer in die Warteschlange gestellt wird. Die Ereignisse sind eigentlich Fenstermeldungen, und die Meldungshandler müssen von einem einzigen Thread aus aufgerufen werden. Durch Ziehen mit der Maus bleibt der Ereignis-Thread "beschäftigt", sodass während des Ziehens keine anderen Fensterprozeduren ausgeführt werden können. Dies ist eine der Designeinschränkungen der ursprünglichen ursprünglichen Windows-GUIs, von denen Access 2003 ein solches Programm ist, das es verwendet.
Die Eingabebehandlung und das Threading-Modell wurden in neueren Windows-Versionen und mit anderen Frameworks, z. B. den in Office 2010 verwendeten, verbessert. Sie sind nicht sicher, ob das Problem dadurch gelöst wird, es kann jedoch hilfreich sein, eine neue Office-Version auszuprobieren.
Sie können auch versuchen, eine ausgelastete Schleife auszuführen, in der DoEvents von Zeit zu Zeit aufgerufen wird, um die Fenstermeldungen zu verarbeiten. Verwenden Sie einfach sleeps, um die 500-ms-Interrupts festzulegen, anstatt dass das System alle 500 ms Ihr Ereignis aufruft.