Как запустить макрос VBA после загрузки формы доступа? - PullRequest
0 голосов
/ 12 июня 2019

Когда я вызываю подпрограмму в Form_Load, она вызывает ошибку из-за Screen.ActiveForm.Это связано с тем, что форма еще не загружена.

Какие подфункции / функции я могу использовать для запуска макроса после загрузки формы.

  • Я пытался Form_Timer, он неничего не делать
  • Form_Activate выдает ту же ошибку
  • Form_after… они, похоже, не указывают ничего после загрузки формы.

Вот мой код для Form_Timer:

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

Я надеялся, что через 0,5 секунды моя форма будет загружена и записи будут отображаться в элементах управления формы.

1 Ответ

1 голос
/ 12 июня 2019

Вместо того, чтобы зависеть от 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
...