Форма доступа. Запрос работает непоследовательно - PullRequest
0 голосов
/ 27 сентября 2018

У меня проблема с методом запроса формы, работающим некорректно.

У меня есть две формы.Первая форма - это форма Data_Entry для пользователя.Вторая форма - это дисплей Dashboard, который упорядочивает и форматирует важные данные из первой формы.В форме Data_Entry есть кнопка, которую пользователь может нажать, чтобы вызвать событие Requery в формах Data_Entry и Dashboard.Это очень простой код:

Private Sub Button_Update_Click()
    Form_Data_Entry.Requery
    Form_Dashboard.Requery
End Sub

В форме Dashboard у меня также есть событие таймера, которое срабатывает каждые 60 секунд:

Private Sub Form_Timer()
    Me.Requery
End Sub

Примерно в 50% случаев этивсе работают как положено.Примерно в 45% случаев кнопка обновления в форме Data_Entry сама будет запрашивать, но ничего не будет делать с приборной панелью;однако нажатие на Dashboard и нажатие клавиши F5 приведут к принудительному выполнению запроса, как и событие таймера.В остальные 5% времени ни кнопка обновления, ни F5, ни таймер не будут запрашивать Dashboard.

100% времени, кнопка обновления будет запрашивать форму Data_Entry без проблем.

Если я закрою Dashboard и снова открою его, он снова будет работать, как и ожидалось ... на некоторое время.Иногда это может продолжаться часами без проблем, а иногда - только 15 минут.

Я не понимаю, что вызывает такое непоследовательное поведение.Кажется, это не проблема VBA.Это какая-то более глубокая проблема в самом исходном коде Access, или я что-то упускаю из виду в другом месте?

1 Ответ

0 голосов
/ 21 ноября 2018

Мне удалось решить эту проблему, но я до сих пор не знаю, что ее вызывает.Я обнаружил, что открытие формы из кода VBA или из макроса Access будет по-прежнему представлять ту же проблему, но закрытие формы один раз и повторное ее открытие приведет к исчезновению проблемы на время сеанса.Поэтому я изменил код кнопки, чтобы открыть форму отображения, чтобы сначала открыть форму, закрыть ее, а затем снова открыть.Проблема решена.

Private Sub Button_DisplayName_Click()
    DoCmd.OpenForm “FORM_NAME”
    DoCmd.Close acForm, “FORM_NAME”, acSaveNo
    DoCmd.OpenForm “FORM_NAME”
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...