Программирование >>  Проектирование интерфейса пользователя 

1 ... 129 130 131 [ 132 ] 133 134 135 ... 153


объект Err, а она, в свою очередь, обращается к процедуре

Операция добавления записи выполняется приватной процедурой DoW-

riteEntry, вызываемой в строке 14. Оставшаяся часть кода процедуры WriteEntry связана с обработкой возможных ошибок. Если ошибка произошла по причине отсутствия в базе данных таблицы LOG, вызывается процедура CreateTable, рассмотренная в листинге 23.2, и управление

вновь передается строке, породившей ошибку (строки 32-33). Если причина ошибки заключается в другом, вызывается стандартный метод Raise объекта Err. В строках 10-19 выполняется поиск таблицы EOG в коллекции AllTables.

Самая важная часть работы возложена на процедуру - об этом го-

ворит префикс Do ее названия. Строки обработки ошибок отделены от кода, выполняющего собственно операцию пополнения таблицы, с целью упростить обе процедуры. Код подпрограммы DoWriteEntry достаточно прозрачен и не нуждается в подробных комментариях - создается объект класса DAO.Recordset, с его помощью в таблицу добавляется новая запись, ее полям присваиваются значения, переданные процедуре в виде аргументов, а затем внесенные изменения сохраняются в базе данных командой Update.

Чтобы протестировать рассмотренный выше код, создайте новый модуль и поместите в него процедуру, приведенную в листинге 23.4, или ей подобную. (Я обычно стараюсь сохранять тестовый код в отдельных модулях, не смешивая его с кодом, непосредственно решающим задачу, - то же рекомендую делать и вам.)

Листинг 23.4. Тестовая процедура для проверки кода модуля LogUtilities

1: Sub Test ( )

2 : On Error GoTo Except

3: Call Err.Raised, EogUtilities , Test , No Help , 0) 4: Exit Sub

5: Except:

6: Call WriteErrorEntry (Err)

7 : End Sub

Il Тестовый код действует следующим образом: в строке 3 с помощью при-1 нудительного вызова Err.Raise имитируется возникновение ошибки и провоцируется выполнение кода обработчика исключений, который, обращаясь к процедуре WriteErrorEntry, сохраняет информацию об ошибке в таблице LOG базы данных. Теперь, снабдив любую из реальных программ конструкциями обработки ошибок, содержащими обращения к процедурам WriteErrorEntry или WriteEntry, вы получите надежный код и удобное средство анализа ошибок. В случае возникновения любого сбоя вы без труда восстановите картину происшедшего, просмотрев содержимое соответствующей записи таблицы LOG. В следующем разделе мы обсудим способы оперативного включения/отключения функций ведения протокола ошибок и просмотра содержимого журнальной таблицы.

Интерфейс просмотра ошибок

Диспетчер настроек, вызываемый из мен ки (ToolsOAdd-Ins) используют для добавления внешних ссылок на базы данных, которые необходимо инкорпорировать в текущий проект. Добавив с помощью диспетчера надстроек (вы ознакоми-



тесь с ним чуть позже) ко . mda в базу даннгх, вы получите доступ к средствам, которые предлагает эта надстройка. Включение механизма ведения протокола обеспечивается вызовом любой из процедур, либо Ниже приведен код, дающий возможность просмотра содержимого журнала ошибок.

После установки надстройки в среде Access в меню СервисНадстройки добавляется новый элемент. Щелчок на нем приводит к срабатыванию определенной процедуры или функции в модуле надстройки - в данном случае в этой роли выступает функция, открывающая таблицу LOG для просмотра. (Вы можете развить мою мысль и придумать что-то еще.) Код функции просмотра содержимого журнальной таблицы приведен в листинге 23.5.

Листинг 23.5. Функция просмотра содержимого таблицы LOG, выполняемая при выборе соответствующего элемента меню Сервис=>Надстройки

1: Function EntryPoint ( )

2: Call DoCmd. ОрепТаЫе ( LOG ,

3 : End Function

acViewNormal, acReadOnly)

Как видите, код листинга 23.5 нельзя назвать особенно сложным. В строке 2 используется обращение к методу для откры-

тия указанной таблицы в режиме просмотра. Если ошибок в тестируемой программе не было, значит, таблица LOG в базе данных еще не создана и при выполнении строки 2 откроется окно с сообщением об интерфейсной ошибке - это вполне нормально. Функцию Entry-Point также следует включить в состав модуля LogUtilities.

Тестирование кода надстройки

Подобно любому программному коду, процедуры и функции из состава надстройки должны быть подвергнуты всестороннему тестированию. Поскольку мы имеем в виду надстройку в виде базы данных Access, никаких принципиальных инноваций вы не встретите. Как и ранее, откройте модуль в окне редактора VBA, поместите текстовый курсор в пределах процедуры, которую хотите выполнить, и нажмите клавишу <F5> или <F8>. Гораздо легче протестировать процедуры надстройки заблаговременно, перед инсталляцией ее в среде Access.

Еще один способ тестирования внешнего кода связан с построением ссылки из одной, рабочей, базы данных на другую. Чтобы добавить ссылку на базу данных Log.mda (или произвольную базу), выполните следующие действия.

в которой необходимо создать

Откройте новую или существующую базу данных, ссылку.

Выберите в строке меню окна Access команду СервисМакрос=>Редактор Visual Basic (Tools=>Macros=>Visual Bacis Editor).

3. В строке меню окна редактора Microsoft Visual Basic выберите команду Tools=>References.

4. В диалоговом окне References щелкните на кнопке Browse.

5. Откроется диалоговое окно Add Reference. В раскрывающемся списке Тип фа1шов (Files ofType) выберите опцию Надстройки (*.mda) (Add-lns).

6. С помощью средств навигации окна отыщите файл и щелкните на кнопке Открыть (Open), а затем на кнопке ОК в диалоговом окне References.



7. Изменения в структуре проекта вы сможете увидеть, если откроете дочернее окно Project Explorer средт Microsoft Visual Basic (рис. 23.1).


&1S ln rt-

Iй..*йt-yЛ:.sн

CD i

contact* (contscts) Kan

J 1>Я51*1л1кг, )

upzL<a Соа{п£ bitbah

Sub Teat!) End Sub

PuC 1. Создав ссылку, вы сможете использовать в новом проекте ранее составленный код

После построения ссылки код адресуемой базы данных становится доступным для решения задач, связанных с текущей базой. Это удобный способ повторного использования кода (в том числе, кода надстроек), исключающий необходимость выполнения операций экспорта и импорта модулей.

Установка и отключение надстроек

После создания и тестирования кода надстройки вы можете установить его в среде Access. Откройте базу данных Log.mda и откомпилируйте код модуля LogUtilities - его полный текст приведен в листинге 23.6.

Листинг 23.6. Полный текст модуля LogUtilities

1: Option Compare Database

2 : Option Explicit

4: Function EntryPointO

5: Call DoCmd. ОрепТаЫе ( LOG

6 : End Function

8

acViewNormal, acReadOnly)



1 ... 129 130 131 [ 132 ] 133 134 135 ... 153

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика