如何在加载访问表单后运行 vba 宏



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

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

  • 我试了Form_Timer,它什么也没做
  • Form_Activate产生相同的错误
  • Form_after...它们似乎并没有真正指示表单加载后的任何内容。

这是我Form_Timer的代码:

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

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

与其依赖于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

最新更新