Access 2002

Отменить вывод отчета        


Если отменить вывод отчета (присвоив параметру Cancel обработчика его события Open или NoData значение True), Access сгенерирует ошибку выполнения кода метода DoCmd.OpenReport Чтобы перехватить эту ошибку и избавить пользователя от чтения сообщения, выводимого Access в ответ на нее, в вызывающую процедуру обычно включают соответствующие операторы обработки ошибок.

Если при форматировании отчета или его выводе на печать происходит ошибка в ядре базы данных (которым обычно является Jet), Access генерирует для этого отчета событие Error. Хотя возникновение подобных ошибок для отчета менее вероятно, чем для формы, они, тем не менее, иногда случаются. Например, Access генерирует такую ошибку, если таблица открыта каким-либо пользователем монопольно или отчет присоединен к несуществующему набору записей.

Как и в случае большинства других событий формы или отчета, для обработки события Error лучше использовать модуль отчета, а не макрос. При этом в процедуру обработки события Error можно передать два параметра, обеспечивающие такие функциональные возможности, которые отсутствуют, если для обработки данного события вызывается макрос или какая-нибудь внешняя подпрограмма. Применение модуля класса позволяет управлять тем, как Access будет обрабатывать ошибку после завершения вашей процедуры.

 8.8 приведена простая процедура обработки ошибок из отчета rptPhoneBookParam. Она всего лишь отображает на экране сообщение в ответ на ошибку, которая может произойти, если пользователь удалит запрос или таблицу, к которой присоединен отчет. Тем не менее эта процедура может служить отправной точкой для создания ваших собственных обработчиков ошибок.

     Так как VBA, подсистема управления отчетами Access и ядро базы данных Jet не зависимы друг от друга, вы не можете использовать свойство Err.Description для получения информации об ошибках ядра базы данных Jet.

Комментарии закрыты