|
Программирование >> Проектирование интерфейса пользователя
ВД*М-::- д.* Общие ; Пиагаипакк ] кгаяиатура - . 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 При отладке макроса рекомендуется задавать тонки останова в строках кода используемых функций
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |