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

1 ... 44 45 46 [ 47 ] 48 49 50 ... 153


ВД*М-::- д.*

Общие ; Пиагаипакк ] кгаяиатура

- . I

Опжквть...........-..........

Iv* строку С0СТ0ЯН4*Я

! Р .:Новые яр№ва обьектш .

* Кдаструктозмэкроссе............................

; Р сгол&еи men

. -i Открьякггъ объ кТ(.:. 8 окне базы данных

Формы а отчеты

Г э ггги >)е сьеты V ewwB в шкелй задач

Отмена

Рмс. 9.3. Диалоговое окно Параметры позволяет изменить значения параметров работ ess, принятые по умолчанию

В ячейки столбца Условие могут быть помещены самые разнообразные логические выражения. Рис. 9.4 иллюстрирует использование команда: отрицания результата вызова функции Table Exists. Далее мы будем тестировать результат выполнения команды CREATE TABLE языка SQL. Эта команда рассматривалась выше, в раздела гадание таблицы с помощью SQL . Цель тестирования - проверить, существует ли таблица, которую мы предполагаем построить. Логическое выражение выглядит следующим образом: Not TableExists ( DOCUMENT )

j у I CreMtOacmnSg Mat ТоЫсиЬГВОАе/Г]

WTpfmm SQL

ШЧ) ИЗНБМШ £аНИЬО( ISbKstW IfKyU НГ№Д$ уга 4 ЛГ*ГЬГЧ

Рис. 9.4. Столбец Условие позволяет задать логическое выражение, управляющее процессом выполнения макрокоманды



Просмотрите рис. 9.4 и текст листинге. 1, содержащий код функции TableExists.

Листин1. Функция проверки наличия таблицы

2 : 3: 4 : 5: 6:

10 :

Function yVal TableName As String) As On Error GoTo Except TableExists = True

Call DoCmd.SelectObject(acTable, TableName) Exit Function

Boolean

Except:

TableExists Err.Clear

End Function

False


Код листинге. 1 будет работать независимо от того, существует ли открываемая таблица, если в редакторе Visual Basic включена опция Break On All Error Checked (ее можно установить на вкладке General диалогового окна Tools=>Options)

Опция Break On All Error Checked очень удобна в процессе разработки. Безусловно, она не нужна при распространении базы данных конечным пользователям - ведь вы не хотите посещать своих пользователей каждый раз при возникновении ошибки в базе данных. Приложение должно остановиться, если нельзя обработать ошибочное условие, и нет смысла продолжать работу.

Щелчок правой кнопкой мыши в пределах столбца Условие приводит к появлению контекстного меню. При выборе элемента Построить (Build) открывается диалоговое окно Построитель выражений (Condition Builder), облегчающее задачу создания условных выражений и обеспечивающее доступ к различным объектам базы данных - таблицам, запросам, формам, отчетам, функциям, константам, операторам и общим выражениям. Инструменты окна Построитель выражений хорошо документированы в файлах оперативной справочной системы Access. Оно всегда в вашем распоряжении.

Строка 1 листинга 9.1 содержит заголовок функции TableExists. В строке 2 определяется код обработки ошибок (подробнее см. главу 18-ii час. Обработка ошибок во время выполнения профаммы ): компилятор получает инструкцию перехода на метку Except в случае возникновения любой ошибки выполнения кода функции. Оператор строки 3 - в предположении, что ошибок не будет (мы оптимисты!), - присваивает возвращаемому аргументу функции литеральное значение True. В строке 4 с помощью команды DoCmd. SelectObject осуществляется попытка открыть таблицу с заданным именем. (К сожалению, функция ОрепТаЫе не возвращает значения типа Boolean - иначе вызов ее можно было бы использовать в столбце Условие непосредственно.) Строка 6 содержит инструкцию завершения функции. Фрагмент кода в строках 8-10 выполняется только в случаях, когда при выполнении строки 4 возникает ошибка. Если функция возвращает значение False - это сигнал о том, что таблица не найдена. В строке 10 выполняется очистка содержимого объекта Err.



Объект Err хранит информацию о характере ошибки и заполняется соответствующими данными при возникновении любой ошибки. Чтобы более подробно проанализировать причины ошибки, необходим дополнительный код (обратитесь к главе 18).

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

После создания макрос можно (и нужно) протестировать. Конечно, таких мощн1х инструментов отладки, какие имеются в интегрированной среде программирования Microsoft Visual Basic, нет, но некоторые (довольно эффективные) средства тестирования макросов все-таки существуют.

В ходе дальнейшего изложения мы будем опираться на пример макроса, описанный в предыдущем разделе. Чтобы создать макрос, выполните такие действия.

1. В окне базы данн1х выберите элемент Макросы списка Объекты.

2. Щелкните на кнопке Создать панели инструментов.

3. В ячейку столбца Условие введите выражение Not TableExists ( DOCUMENT ). В ячейке столбца Макрокоманда выберите элемент 3anyCK3anpocaSQL (RunSQL).

5. В поле аргумента Инструкция SQL макрокоманды введите выражение SQL, содержащее команду построения таблицы DOCUMENT. Сохраните модуль и переключитесь в режим макроса. Щелкните на кнопке Запуск.

Появится запрос о сохранении макроса. Щелкните на кнопке Да (Yes).

,Щ Ше Edit Sjft* Ir rt uhj loole fleb

- JS contacts {contBcts}

Set Coni ion VQtDfl.

End Sub

fuacciDD ГаЫеЕх1яга [Б-/аХ ТйЫейане Аз SiTEins) Аз HclUR

Call I>oC::5dL.Stie=::Cb35ct:iacTafcle, лЫИЛлс! f.y.i.- :.n:c.Ln

LutalttiiacL Err.Cle&r

Puc. 9.5 При отладке макроса рекомендуется задавать тонки останова в строках кода используемых функций



1 ... 44 45 46 [ 47 ] 48 49 50 ... 153

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