Файл: Освой самостоятельно программирование для MS Access 2002 за 24 часа [П.Киммел].pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 21.10.2020
Просмотров: 7923
Скачиваний: 25

Объект Err хранит информацию о характере ошибки и заполняется соответствую-
щими данными при возникновении любой ошибки. Чтобы более подробно проанали-
зировать причины ошибки, необходим дополнительный код (обратитесь к главе
Тестирование и отладка макроса
После создания макрос можно (и нужно) протестировать. Конечно, таких мощных
инструментов отладки, какие имеются в интегрированной среде программирования
Microsoft Visual Basic, нет, но некоторые (довольно эффективные) средства тестирова-
ния макросов все-таки существуют.
В ходе дальнейшего изложения мы будем опираться на пример макроса, описан-
ный в предыдущем разделе. Чтобы создать макрос, выполните такие действия.
1. В окне базы данных выберите элемент Макросы списка Объекты.
2. Щелкните на кнопке Создать панели инструментов.
3. В ячейку столбца Условие введите выражение Not TableExists ( "DOCUMENT"
4. В ячейке столбца Макрокоманда выберите элемент
(RunSQL).
5. В поле аргумента Инструкция SQL макрокоманды введите выражение SQL, содер-
жащее команду построения таблицы DOCUMENT.
6. Сохраните модуль и переключитесь в режим макроса.
7. Щелкните на кнопке Запуск.
8. Появится запрос о сохранении макроса. Щелкните на кнопке Да (Yes).
|
fife Edit
0 - У 1 % A
fleb
contacts
:
Sub
Аз
Call
9.5.
отладке макроса рекомендуется задавать тонки останова в строках кода
используемых функций
9-й час. Работа с макросами
165

Выполнить макрос можно также с помощью команды меню
Даже
если таблица DOCUMENT существует (мы ведь ранее уже создавали ее), сообщение об
ошибке выдано не будет, поскольку макрос просто не выполнится.
Чтобы осуществить пошаговое выполнение макроса, щелкните на
По
шагам (Step) — на панели инструментов Конструктор макросов она расположена спра-
ва от кнопки Запуск — либо воспользуйтесь командой меню
шагам
Step). Кнопка По шагам действует в режиме переключателя — теперь при
каждом щелчке на кнопке Запуск будет выполняться одна строка макроса.
Режим пошагового выполнения особенно полезен именно тогда, когда макрос со-
стоит из нескольких строк. Если при тестировании макроса необходимо проверить и
код
или процедуры VBA, в соответствующих ее строках следует задать точки
останова (контрольные точки). На рис. 9.5 показано окно редактора, в котором кон-
трольной точкой отмечена строка TableExists = True.
Чтобы задать точку останова, откройте модуль, содержащий требуемую функцию.
Щелкните в пределах нужной строки и нажмите клавишу <F9> (либо щелкните в левой
колонке окна напротив строки). Строка будет подсвечена красным цветом и отмечена
специальной пиктограммой. Чтобы снять контрольную точку, повторите операцию.
Редактор Microsoft Visual Basic позволяет открывать полезные дополнительные ок-
на — Watches, Locals и Immediate (мы говорили о них ранее). Но в составе окна
Макрос подобных инструментов нет. После выполнения очередной строки кода мак-
роса отображается диалоговое окно Пошаговое исполнение макроса (рис. 9.6).
•
. :
.
'.
.
'
- •'
.
те TABLE DOCUMENT
:
1
Рис. 9.6. После выполнения строки кода
макроса открывается диалоговое окно
Пошаговое исполнение макроса, содер-
жащее сведения о статусе макрокода
Теперь, ознакомившись с основами создания и применения макросов, вы сможете
использовать полученные знания для предварительного тестирования решений еще до
их окончательной реализации в виде кода
либо для построения более мощных
макросов, которым в проекте будет отведена самостоятельная роль. Остаток занятия
мы посвятим рассмотрению ряда полезных примеров практического использования
макросов.
Макросы группы
Макросы, основанные на команде КопироватьОбъект,
позволяют вы-
полнять операции копирования различных объектов — таблиц, запросов, форм, отче-
тов, макросов, модулей или страниц доступа к данным Access — как внутри текущей
базы данных, так и между разными базами данных.
166
Часть III. Использование ресурсов Access

В этом разделе рассказано, как создать макрос для копирования таблицы
CONCORDANCE. Рассмотрите рис. 9.7 и выполните действия, указанные ниже.
• •
.
новое имя
или
fc адтсяесе
:
Для справки об •
Рис.
Так создается макрос для копирования таблицы CONCORDANCE
1. В окне базы данных выберите элемент Макросы списка Объекты.
2. Щелкните на кнопке Создать панели инструментов.
3. В ячейке столбца Макрокоманда выберите элемент
Ниже будут
отображены поля ввода аргументов макрокоманды.
4. Поле База данных оставьте пустым — мы предполагаем, что копия таблицы
CONCORDANCE должна содержаться в текущей базе данных.
5. В поле Новое имя введите имя таблицы-копии —
6. В раскрывающемся списке Тип объекта выберите элемент Таблица.
7. В поле Имя объекта введите CONCORDANCE либо выберите это наименование в рас-
крывающемся списке.
Не забудьте сохранить макрос и протестировать его. После однократного выполне-
ния макроса список Таблицы окна базы данных пополнится новым объектом —
Использование макросов
Макрос типа УдалитьОбъект (DeleteObject) в сочетании с построенными ранее
макросом копирования и функцией проверки существования таблиц
(TableExists) — удобное средство организации полнофункциональной схемы ре-
зервного копирования таблиц. Чтобы реализовать эту идею в отношении таблицы
9-й час. Работа с макросами

CONCORDANCE, создадим новый макрос на основе команды
и использу-
ем его совместно с макросом Concordance Backup и функцией TableExists.
Задача построения макроса типа УдалитьОбъект довольно проста — достаточно
выполнить следующие действия.
1. В окне базы данных выберите элемент Макросы списка Объекты.
2. Щелкните на кнопке Создать панели инструментов.
3. В ячейке столбца Макрокоманда выберите элемент УдалитьОбъект.
4. В раскрывающемся списке Тип объекта выберите элемент Таблица и в поле Имя
объекта введите
либо выберите это наименование в раскры-
вающемся списке.
Запустите макрос на выполнение, чтобы проверить корректность его работы, и со-
храните ПОД именем Delete Concordance.
Если вы попытаетесь исполнить макрос повторно, Access откроет окно сообщения
об ошибке (рис.
:
не
Г
Рис. 9.8.
удалить таблицу, которой уже нет!
Чтобы объединить решения в общую схему, потребуется создать новый макрос,
скопировав в него строки существующих. Технология повторного использования
вполне применима и при работе с макросами. В новых макросах можно частично ис-
пользовать код старых, но при этом необходимо проводить тестирование. А если
строить новый объект на основе существующих без их редактирования, тестирование
можно не проводить.
Макрос, который мы собираемся построить, должен вначале проверять факт суще-
ствования объекта (в нашем примере — таблицы CONCORDANCE_BACKUP) и только за-
168
Часть III. Использование ресурсов Access

тем можно предпринимать попытку его удаления. Если объект существует, поочеред-
но должны быть выполнены макросы Delete Concordance и Concordance Backup.
Чтобы построить макрос создания резервной копии, используйте новый макрос и
команду
(RunMacro). В новый макрос будут включены оба созданных
ранее макроса. Реализация решения в соответствии с указанной схемой предполагает,
что ранее созданные макросы не должны изменяться. Данный подход является про-
дуктивным — создание нового объекта на основе существующих без какого-либо их
редактирования.
Чтобы построить новый макрос, Backup, выполните следующие действия.
1. В окне базы данных выберите элемент Макросы списка Объекты.
2. Щелкните на кнопке Создать панели инструментов.
3. В ячейке столбца Макрокоманда выберите элемент ЗапускМакроса.
4. Введите логическое выражение TableExists (
) в ячей-
ку столбца Условие.
5. В раскрывающемся списке аргумента Имя макроса выберите наименование макро-
са Delete Concordance.
6. Добавьте новую строку макроса и в ячейке Макрокоманда вновь выберите элемент
ЗапускМакроса.
7. В раскрывающемся списке аргумента Имя макроса для второй строки выберите на-
именование макроса Backup Concordance.
8. Сохраните созданный макрос под именем Backup.
Поскольку все объекты, которые использовались нами при построении макроса
Backup, ранее уже проверялись, мы можем быть в достаточной степени уверены, что
и теперь они нас не подведут. Агрегация макросов упрощает код.
Ключи от города
Макрокоманду
(RunCommand) можно сравнить с ключами от
волшебного города. С ее помощью вам удастся справиться почти со всеми аспектами
поведения Access. Макрос типа ВыполнитьКоманду требует задания единственного
аргумента, который необходимо выбрать в раскрывающемся списке Команда. Список
Команда содержит несколько десятков предопределенных инструкций Access.
Возможности макросов типа ВыполнитьКоманду настолько обширны, что их опи-
сание составит отдельную книгу. Здесь уместно вновь напомнить вам о гигантском
потенциале оперативной справочной системы Access. Стучитесь — и вам откроют!
Макросы ВыполнитьКоманду настолько же мощны, насколько и просты. Достаточ-
но при создании нового макроса выбрать в раскрывающемся списке ячейки
Макрокоманда значение ВыполнитьКоманду, а ниже, в списке Команда (Command),
указать требуемую инструкцию Access. На рис. 9.9 представлен результат выполнения
макроса типа ВыполнитьКоманду в том случае, когда в качестве аргумента выбрано
значение
В Access 2002 можно удалить информацию о пользователе из файла
базы данных (т.е. одно из ее свойств). Для этого обратитесь к
диалоговому окну
и на вкладке
Общие (General) установите флажок Удалить личные сведения из файла.
час. Работа с макросами