Запускайте код VBA всякий раз, когда форма с вкладками повторно выбирается в Access

РЕДАКТИРОВАТЬ: Для пояснения, я говорю в следующем посте о просмотре документов с вкладками, а не элемент управления вкладками. Тем не менее, если вы ищете примерно ту же проблему, но в отношении элемента управления вкладками, Горд Томпсон ответит правильно. Два ответа по цене одного!

У меня есть база данных Access 2007, которая использует документы с вкладками. Мне нужно запускать некоторый код VBA каждый раз, когда пользователь выбирает форму под названием "Отчеты", либо открывая ее, либо щелкая ее вкладку, если она уже открыта.

Я мог бы добиться почти того же самого, закрывая его каждый раз, когда он используется, и запуская код в событии OnLoad, но в идеале я хотел бы оставить его открытым, чтобы пользователи могли сохранять настройки различных выпадающих списков, переключателей и т. Д. что они уже настроены на "Отчеты".

Я надеялся на событие, которое могло бы запустить код при повторном выборе вкладки, но ни одно из моих предположений (OnCurrent и GotFocus), похоже, не сработало (OnCurrent работает только при открытой форме, как OnLoad).

Любые идеи очень ценятся - не могу найти то, что я ищу в Google, хотя я подозреваю, что это потому, что я не знаю точно, что я ищу.

2 ответа

Решение

Нашел ответ, который искал. Это событие OnActivate.

.Value свойство TabControl возвращает индекс (начиная с нуля) текущей страницы. Итак, если у меня есть TabControl с именем TabCtl14 который содержит две страницы, FirstPage а также SecondPageтогда код...

Private Sub TabCtl14_Click()
If Me.TabCtl14.Value = 1 Then
    MsgBox "SecondPage was clicked."
End If
End Sub

... отображает MsgBox всякий раз, когда я щелкаю вкладку "SecondPage" в TabControl.

Другие вопросы по тегам