MS Access VBA: при открытии отчета, какое событие вызывается после завершения запроса, от которого зависит отчет? - PullRequest
0 голосов
/ 01 мая 2018

У меня есть отчет, который зависит от запроса. Отчет отображается правильно, но я пытаюсь, чтобы видимость метки зависела от поля да / нет в запросе.

Следующее выдает ошибка 2424, что поле не найдено :

Private Sub Report_Open(Cancel As Integer)
lblUppersIncluded.Visible = ysnUppersIncluded
End Sub 

В качестве альтернативы:

Private Sub Report_Activate()
lblUppersIncluded.Visible = ysnUppersIncluded
End Sub

Дает Ошибка 2427 выражение не имеет значения . Аналогично для Report_Load.

Однако командное поле, созданное в отчете, который выполняет ту же строку кода, выполняется правильно.

Я подозреваю, что все события отчета запускаются до того, как запрос был выполнен, поэтому эти поля не были заполнены. Есть ли событие, которое я могу использовать после завершения запроса?

Ответы [ 2 ]

0 голосов
/ 01 мая 2018

Иногда лучшим способом решения подобных проблем является преобразование вашей метки в текстовое поле и использование условного форматирования. Если ваши потребности форматирования не удовлетворяются тем, что может быть достигнуто условным форматированием, тогда вы можете посмотреть в код.

Специально для того, чтобы метка была видимой или нет, вам даже не нужно условное форматирование. Преобразовать в текстовое поле и использовать:

=IIF([My condition for visible label],"My Label text:","")

в качестве источника управления.

0 голосов
/ 01 мая 2018

Я обнаружил, что код, зависящий от полей запроса, будет работать, если используется событие Detail_Format. Это событие вызывается в представлении предварительного просмотра, но не в представлении отчета.

...