Отчеты MS-Access показывают вид проекта после его выполнения.
-
06-07-2019 - |
Вопрос
Я создал отчет в отчете MS Access и написал код VBA для получения данных и отображения отчета в формате MS-Word.Но при создании отчета во время выполнения в отчете сначала отображается или мигает представление дизайна отчета в течение нескольких секунд, и отчет будет создан.
Я хотел бы найти решение, позволяющее избежать мигания представления дизайна при создании отчета.Возможно ли это в такой кодировке MS-Access или VBA.??
Я публикую строки, которые я использовал для вызова отчета о доступе из кода формы доступа.
DoCmd.OpenReport первым![Аргумент], acPreview
при этом будет создан отчет, но во время выполнения экран дизайна мигает в течение нескольких секунд.
И в отчете о доступе не записан код VBA.
Фактически я подготовил данные в таблице временного доступа и сгенерировал отчет из таблицы.
Проблема здесь в том, что при запуске отчета в режиме предварительного просмотра экран дизайна отчета показывается несколько секунд.Это выглядит плохо со стороны пользователей.
Решение
Что произойдет, если вы попробуете этот код:
Dim strReport As Report
strReport = rst!Argument
If SysCmd(acSysCmdGetObjectState, acReport, strReport) Then
DoCmd.Close acReport, strReport
End If
DoCmd.OpenReport strReport, acPreview
Этот код проверяет, открыт ли отчет в любом представлении, а затем закрывает его, если он есть, а затем открывает его. Это гарантирует, что вы не находитесь в режиме конструктора со скрытым окном.
Код также позволяет избежать любых возможных проблем со ссылками ByRef, которые могут быть связаны с передачей значения из набора записей в команду OpenReport.
Другие советы
Похоже, вы открываете отчет в режиме конструктора, чтобы изменить какое-либо свойство. Возможно, этого можно избежать, но вам нужно будет опубликовать код, который открывает отчет, чтобы сказать наверняка.
Как вы экспортируете отчет в MS-Word? Какой код?
Пробовали ли вы то же самое с простым отчетом (с источником данных таблицы) вместо использования кода VBA? Может быть, VBA занимает так много времени, чтобы держать отчет открытым в режиме разработки достаточно долго, чтобы его можно было заметить.
У меня происходит то же самое, когда я вызываю отчет MS Access из приложения VB6.Причина, по которой это происходит в моем случае, заключается в том, что у меня настроена форма, которая появляется при запуске.Если у вас не выбрана форма запуска, она не должна стать видимой, поэтому не мигает.
Позвольте мне знать, если это помогает.
Майк