首页 > 解决方案 > 如何在访问表单加载后运行 vba 宏?

问题描述

当我在 Form_Load 中调用 sub 时,它给了我一个由 Screen.ActiveForm 引起的错误。这是由于表单尚未加载。

加载表单后,我可以使用什么子/函数来运行宏。

这是我的 Form_Timer 代码:

Private Sub Form_Timer()
    call Module6.loadRecords
    Me.TimerInterval = 500
End Sub

我希望在 0.5 秒后我的表单将被加载并且记录将显示在表单控件中。

标签: vbams-access

解决方案


Screen.ActiveForm您应该简单地将表单引用传递给函数,而不是依赖于。

Private Sub Form_Load()
    Call Module6.loadRecords(Me)
End Sub

Public Sub loadRecords(F As Access.Form)

如果你真的想使用Screen.ActiveForm,它的工作原理是这样的:

Private Sub Form_Load()
    ' 1 ms is enough to de-couple the events
    Me.TimerInterval = 1
End Sub

Private Sub Form_Timer()
    ' Reset timer, always the first thing to do for single Timer events
    Me.TimerInterval = 0

    Call Module6.loadRecords
End Sub

推荐阅读