KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программы » Павел Дубнов - Access 2002: Самоучитель

Павел Дубнов - Access 2002: Самоучитель

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Павел Дубнов, "Access 2002: Самоучитель" бесплатно, без регистрации.
Перейти на страницу:

– макросами;

– VBA (Visual Basic for Applications) – объектно-ориентированным языком программирования;

– XML (Extensible Markup Language) – расширяемым языком разметки, предназначенным для сбора, адаптации и совместного использования данных в неограниченном числе приложений и форматов.

2. Каждый из этих языков занимает определенную функциональную нишу. В настоящей главе приведен краткий обзор возможностей этих языков и даны общие рекомендации по их использованию.

Глава 10 Программирование с использованием макросов

Функции макросов

Макросы бывают двух видов: единичные, то есть состоящие из одной макрокоманды, и сложные. В последнем случае макрос включает несколько последовательно выполняемых макрокоманд, объединенных общим именем. Каждая макрокоманда осуществляет определенную операцию: установить значения, открыть/закрыть таблицу, найти запись и т. д. Как правило, макрос автоматически запускается при наступлении какого-либо события: например, пользователь щелкает той или иной кнопкой мыши, открывает таблицу, переходит от одного поля к другому и т. п. Чтобы запустить макрос, надо указать его имя. Если макрос запускается в ответ на событие, он должен быть присоединен к соответствующему свойству формы, отчета и т. д. (см. главу 4, в частности раздел «Заголовок формы»).

Макросы могут использоваться для выполнения довольно широкого диапазона операций. Например, макросы позволяют:

• открывать отчет для просмотра или печати;

• переходить от одного элемента управления (записи, поля) к другому;

• устанавливать свойства объекта;

• выполнять разнообразные команды и т. д.

Использование макросов для обработки событий

Наиболее часто макросы применяются для обработки событий. При этом макрос может функционировать и как самостоятельная программа, и в составе процедуры VBA (Visual Basic for Applications). Первый вариант мы рассмотрим в этом разделе, а второй станет предметом нашего внимания в главе 12.

Понятие события

Событие – это любое действие пользователя: щелчок кнопкой мыши, открытие формы и т. д. Событие может также инициироваться каким-либо оператором Visual Basic или самой системой Access. События связываются с формами, отчетами, разделами форм и отчетов, а также с элементами управления форм, в частности с полями. Откликом на событие может быть выполнение процедуры обработки событий на языке VBA или макроса.

Что такое обработка события? Например, давайте посмотрим, как выглядят свойства поля формы (пусть это будет форма Страны). Откроем ее в режиме конструктора (см. рис. 10.1).

Рис. 10.1

Надо открыть также список событий, предусмотренных для какого-либо поля данной формы (например, для поля Код). Для этого следует либо дважды щелкнуть левой кнопкой мыши в пределах этого поля, либо щелкнуть там же правой кнопкой мыши и в появившемся контекстном меню выбрать опцию Свойства. Когда на экране возникнет одноименное окно, откройте в нем вкладку Событие. В результате будет выведен искомый список возможных событий (см. рис. 10.2).

Рис. 10.2

Событие возникает для этого поля в следующих случаях:

• при обновлении поля (до или после операции);

• при открытии/закрытии поля;

• при активизации/дезактивизации поля, когда оно получает или теряет фокус;

• при использовании кнопок мыши (щелчок, двойной щелчок, движение курсора вверх или вниз);

• при использовании клавиатурных клавиш (нажатие клавиши, движение курсора вверх или вниз);

• при перемещении курсора.

Для другого элемента управления (например, для кнопки, текстового поля и т. д.) перечень событий, предусматриваемых в Access 2002, может быть несколько иным, но тоже достаточно длинным.

Последовательности событий

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

Порядок событий для элементов управления в формах События элемента управления возникают в форме при переводе фокуса на элемент управления, а также при изменении или обновлении данных в этом элементе.

Перевод фокуса на элемент управления

Так, при переходе фокуса в форму, в которой выводится один или несколько активных элементов управления, или при переходе к другому элементу управления в этой же форме возникают события в следующем порядке:

Вход • Получение фокуса.

Названные события возникают также после того, как пользователь откроет форму, то есть после операций Открытие, Текущая запись. Последовательность в данном случае такова:

Открытие (для формы) • Включение (для формы) • Текущая запись (для формы) Вход (для элемента управления) • Получение фокуса (для элемента управления).

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

Выход • Потеря фокуса.

Когда пользователь закрывает форму, события Выход и Потеря фокуса возникают перед операциями, связанными с этим закрытием: Выгрузка, Отключение, Закрытие. Порядок будет таким:

Выход (для элемента управления) • Потеря фокуса (для элемента управления) • Выгрузка (для формы) • Отключение (для формы) • Закрытие (для формы).

Изменение и обновление данных в элементе управления

Предположим, пользователь включает в элемент управления формы новые данные или изменяет существующие, а затем переводит фокус на другой элемент управления. Тогда возникают события До обновления и После обновления, происходящие в следующем порядке:

До обновления • После обновления.

События Выход и Потеря фокуса для изменяемого элемента управления возникают после событий До обновления и После обновления:

До обновления • После обновления • Выход • Потеря фокуса.

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

Клавиша вниз • Нажать клавишу • Изменение • Клавиша вверх.

Событие Отсутствие в списке возникает, когда пользователь вводит в поле со списком значение, отсутствующее в этом списке, а затем пытается перейти к другому элементу управления или к другой записи. Событие Отсутствие в списке происходит также после событий клавиатуры и события Изменение для поля со списком, но до возникновения любых событий в элементе управления или формы. Если для свойства поля со списком Ограничиться списком задано значение Да, то сразу после события Отсутствие в списке возникает событие формы Ошибка:

Клавиша вниз • Нажать клавишу • Изменение • Клавиша вверх.

Порядок событий записи в форме

События записи возникают в форме в следующих случаях:

• при переводе фокуса на запись;

• при обновлении содержимого записи;

• при удалении существующей записи/записей;

• при создании новой записи.

Перемещение фокуса по записям и обновление содержимого записей

При переводе фокуса на запись, существующую в форме, при вводе новых или изменении существующих данных в записи, а также при переходе к другой записи той же формы возникает такая последовательность событий:

Текущая запись • До обновления • После обновления • Текущая запись.

При выходе из измененной записи, но до входа в новую запись возникают события Выход и Потеря фокуса. Они происходят для того последнего элемента управления, на котором находился фокус. Эти события возникают после событий формы До обновления и После обновления:

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*