Access 365计时器触发运行时错误5的原因及解决方法
Access计时器代码运行时错误5的原因及解决办法
错误原因
- 逻辑冗余且时序冲突:你在将
TimerInterval设为0停止计时器后,额外添加了判断并重新设置为125的冗余代码。关键是执行DoCmd.OpenForm "TEST FORM"后,Access会切换到新表单的上下文,此时原表单的属性访问可能因状态变化触发无效调用,导致错误5。 - 代码逻辑违背需求:这段冗余代码完全不符合你“等待一段时间后打开测试表单”的初始目标,反而会在打开表单后立刻重启计时器,逻辑混乱。
解决办法
直接删除冗余的判断代码,保留核心逻辑即可。修正后的代码如下:
Option Compare Database Private Sub Form_Timer() Me.TextTime.Value = Format(Time, "HH:mm:ss AM/PM") Static iCount As Integer iCount = iCount + 1 If iCount = 60 Then Me.TimerInterval = 0 ' 停止计时器 DoCmd.OpenForm "TEST FORM" ' 打开测试表单 Exit Sub End If End Sub
补充说明
如果你的实际需求是打开测试表单后仍需运行原表单的计时器,可调整逻辑:不要在打开表单前停止计时器,或者将重启计时器的代码移到打开表单之前,避免上下文切换导致的属性访问异常。但根据你的描述,核心需求是等待触发后打开表单,上述修正即可解决错误并实现功能。
内容的提问来源于stack exchange,提问作者Bob Dance
相关产品推荐
相关产品推荐

