Access 2002

Обработка ошибок доступа к данным


Хотя объект VBA Err дает достаточно информации о большинстве ошибок времени выполнения, его возможности ограниченны: он сообщает только об одной, последней из числа произошедших, ошибке. Однако при работе с данными посредством объектов DAO или ADO этого недостаточно: к ошибке может привести целый комплекс условий, и самих ошибок в результате может возникнуть несколько. Например, если вы с помощью DAO направляете запрос базе данных SQL Server и в ходе выполнения этого запроса происходит ошибка, VBA получает информацию об ошибке и от SQL Server, и от DAO. Вот поэтому и в DAO, и в ADO предусмотрены способы получения более полных сведений о ситуациях, приведших к ошибкам.

Всякий раз, когда ядро базы данных Jet обрабатывает данные, оно может генерировать ошибки времени выполнения. Так как ядро Jet способно выдавать сообщение сразу о нескольких ошибках времени выполнения, произошедших в результате одной операции вашей программы (особенно при доступе к данным ODBC), оно предоставляет вам не один объект Error, а целую коллекцию. Обычно, программист озабочен только тем, чтобы обнаружить сам факт ошибки и сообщить об этом конечному пользователю. Если же вам понадобится подробная информация о произошедшем, коллекция Errors к вашим услугам.

Эта коллекция входит в состав объекта DBEngine. Обрабатывая ошибку либо в процедуре, в которой она произошла, либо в процедуре обработки события Error, можно просмотреть коллекцию Errors и точно определить, что случилось.  12.10, как это делается.

Эта процедура выводит в окно отладки описание каждой из сгенерированных Jet ошибок. В объекте VBA Err всегда находится информация из последнего объекта в коллекции Errors. Перед выполнением очередной операции Jet эта коллекция очищается.

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