Цель работы:Познакомиться с макросами в Access.
ВВОДНЫЕ ЗАМЕЧАНИЯ
Access 97 предоставляет пользователям два средства автоматизации работы с базами данных: язык макросов и язык Visual Basic for Applications (VBA).
Язык VBA имеет преимущества перед языком макросов. Несмотря на это последний можно использовать для создания сложных программ и для автоматизации большинства операций по управлению базой данных.
В отличие от Excel 97 и Word 97, в Access 97 автоматическая запись макросов не выполняется.
Окно макросов открывается в результате нажатия кнопки Создать на вкладке Макросы окна базы данных. Оно включает четыре столбца: Имя макроса, Условия, Макрокоманда и Примечание. При создании нового макроса по умолчанию отображаются только столбцы Макрокоманда и Примечание. Показ остальных столбцов можно установить используя команды Имя макроса и Условия из меню Вид или же одноименных кнопок на панели инструментов Создание макроса.
В столбце Имя макроса указывается имя макроса, которое надлежит задавать, если окно содержит несколько макросов. В столбце Условия осуществляется ввод условия (логическое выражение) для выполнения только части макроса. В столбце Макрокоманда перечисляются подлежащие выполнению действия (макрокоманды) в нужной последовательности.Столбец Примечание, содержащий комментарии к программе, при выполнении макроса игнорируется программой, однако заполнять его рекомендуется, поскольку в этом случае текст макроса понятнее.
Удобно разрабатывать макросы для автоматизации несложных процессов, таких как открытие и закрытие нескольких форм или отчетов, вывод на экран или на печать нескольких документов, отмена/восстановление отображения панелей инструментов и т.д.
СОЗДАНИЕ МАКРОСОВ
После нажатия кнопки Создать на вкладке Макросы пользователь получает доступ к бланку макроса. В каждой строке этой таблицы размещается одна макрокоманда. Для определения ее параметров пользователь должен заполнить предложенные программой формы в нижней части бланка. Чаще всего оператору СУБД удается определить все параметры макрокоманды «по ходу дела», не штудируя справочник. Создадим в качестве примера макрос для фильтрации данных в таблице. Конечно, в Ассеss много замечательных средств для того, чтобы организовать фильтрацию, но удобство макрокоманды ПрименитьФильтр заключается в том, что в ней заранее определяется критерий фильтрации и запоминается вместе с макрокомандой Можно, иметь хоть сто макросов на разные случаи жизни. Они вызываются достаточно быстро, а отменить их действие можно обычным способом, нажав кнопку Удалить фильтр.
Итак, в бланке макроса необходимо указать требуемое имя макрокоманды (в нашем случае ПрименитьФильтр) и затем записать условие фильтрации. Такое условно можно задать с помощью построителя выражений.. Допустим, нам надо выбрать в таблице Литература все записи по теме «медицина». Условие фильтра будет выглядеть так:
[Литература]! [ТЕМА]= "медицина"
Запуск макроса может осуществляться следующими способами:
1.Щелчок по кнопке Запуск на панели инструментов ( на ней изображен восклицательный знак).
2.Вызов команды Запуск макроса из меню Сервис.
3.Маркировка имени макроса и нажатие кнопки Запуск на вкладке Макросы окна базы данных.
4.Двойной щелчок на имени запускаемого макроса.
После того как макрос написан, разработчик приложения или пользователь должен определить способ запуска макроса. Кроме тривиального пути – при помощи меню Сервис — макросы можно вызывать программным путем -- автоматически или посредством элементов управления в формах и отчетах. Если макрос должен запускаться независимо от желания пользователя, то он должен быть поставлен в соответствие некоторому событию, которое, в свою очередь, связано с определенным объектом. При обсуждении форм и отчетов мы видели, как можно связать с событием выполнение определенной процедуры. Точно также для обработки событий используются и макросы. Достаточно при определении свойств объекта в строке, соответствующей событию, указать имя макроса.
Создадим для примера макрос, который позволит предварять открытие объекта базы данных некоторым сообщением, выводимым в окне диалога. Разобьем задачу на следующие этапы.
1.Создать макрос, состоящий из одной макрокоманды — Сообщение. В качестве аргумента этой макрокоманды должен быть введен текст сообщения. Например, такой: «По этому вопросу обращаться к И. Иванову!» Полезно также задать аргумент Заголовок. Он определяет название информационного окна Заголовок например, он может быть таким: «Напоминание».
2. Раскрыть отчет (если мы хотим связать макрос с отчетом) в режиме конструктора и задать обработку события Открытие. В соответствующей строке необходимо указать имя созданного макроса.
Теперь при попытке открыть данный отчет для просмотра, на экран будет выводиться окно. Оно будет оставаться на экране до тех пор, пока пользователь не нажмет кнопку ОК. Поэтому велика вероятность, что тот, кому нужно, прочтет сообщение.
Данный пример можно использовать для форм или отчетов. Существуют три способа получения доступа к окну свойств формы или отчета, находящихся в режиме конструктора. Первый — это команда Вид /Свойства. Второй — кнопка Свойства, которая выводится на экран по умолчанию в режиме конструктора. А третий — это контекстное меню формы или отчета, в котором можно выбрать команду Свойства. Щелкать надо квадратик, расположенный на пересечении вертикальной и горизонтальной линеек.
КНОПКА, ЗАПУСКАЮЩАЯ МАКРОС
Макрос может быть вызван после щелчка мышью элемента управления в форме или отчете. Существуют задачи, в которых пользователю необходимо переходить от формы к форме в определенной последовательности. Естественно, ему будет удобно, если правильная очередность форм будет заложена в программу, чтобы не приходилось думать о том, какую форму открывать следующей. В самом Access подобные кнопки используются для перехода по рекламно – учебным окнам и при выполнении мастеров.
Рассмотрим пример создания такой последовательности. Пусть требуется из открытой Формы1 перейти к Форме2, а из нее вернуться в Форму1.
Последовательность действий в этом случае будет следующей:
1. К формам 1 и 2 добавить по кнопке.
2. Создать два макроса с именами Переход и Возврат, состоящих из двух команд каждый: Закрыть – без аргументов и ОткрытьФорму. В качестве аргумента Имя формы для макроса Переход указать Форма2, а для макроса Возврат – Форма1.
3. В открытых формах в режиме конструктора для кнопки, находящейся в форме1 установить Подпись - Переход, а событию Кнопка вниз присвоить имя макроса Переход. Для кнопки в форме2 соответственно – Возврат.
КНОПКА С КОНТЕКСТНЫМ МЕНЮ
С элементом управления (в частности, с кнопкой) может быть связано контекстное меню с командами, определенными пользователем. Каждая из них будет запускать на выполнение макрос или подпрограмму Visual Basic. Определим последовательность действий, которые нужно выполнить, чтобы создать такое меню, связанное с кнопкой. Предположим, что в меню должны входить три команды, которые запускают макросы Макро-1, Макро-2 и Макро-3.
Последовательность действий может быть следующей.
В начале необходимо создать эти макросы. Например, каждый из них пусть открывает какую-либо таблицу или форму.
Создать контекстное меню, для чего выбрать команду Настойка из меню Вид. На вкладке Панели инструментов щелкнуть по кнопке Создать, ввести имя контекстного меню, например, Конменю, кнопкой Свойства открыть окно Свойства панели инструментов и установить тип Контекстное меню. Закрыть окно и на вкладке Панели инструментов установить флажок Контекстные меню. На панели Контекстные меню открыть вкладку Настраиваемый, активизировать команду Конменю. На вкладке Команды Панели инструментов выбрать Все макросы и перетащить Макро-1, Макро-2 и Макро-3 в подменю команды Конменю.
Для каждой команды Макро, используя контекстное меню в диалоговом окне Свойства элемента конменю в строке действие установить соответственно Макро-1, Макро-2 и Макро-3.
Открыть форму в режиме конструктора и создать новую кнопку. Раскрыть окно свойств кнопки и определите ее подпись, например «конменю».
На вкладке свойств Другие выбрать свойство Контекстное меню и задать ему имя из списка, в нашем случае это будет Конменю.
Теперь, если раскрыть форму в режиме просмотра и щелкнуть созданную нами кнопку правой кнопкой мыши, то появляется контекстное меню. Выбор команды в нем приведет к выполнению соответствующего макроса.
Контекстное меню вызывается после щелчка элемента управления правой кнопкой мыши. С каким событием надо связать новый макрос, если нужно, чтобы он запускался после обычного щелчка того же элемента управления ? С событием Нажатие кнопки. Оно возникает, если вы щелкаете объект мышью.
А можно связать с объектом еще один макрос, который запускался бы при двойном щелчке ? Нет, нельзя. При двойном щелчке возникает событие Нажатие кнопки и будет выполняться тот же макрос, что и при простом щелчке. А можно запускать макрос при помощи двойного нажатия кнопки мыши, если обработка события Нажатие кнопки не определена ? Да, можно. В этом случае макрос должен вызываться событием Двойное нажатие кнопки.
Для удаления любой созданной панели, достаточно маркировать ее на вкладке Панели инструментов и нажать кнопку Удалить. Для удаления же контекстного меню необходимо его перевести в разряд панелей инструментов, а уже потом удалить. В этом случае последовательность действий будет следующей.
Выбирается Вид /Панели инструментов /Настройка/Свойства. Из списка Выбранная панель выбирается удаляемое меню. В поле Свойства панели инструментов устанавливается тип Панель инструментов.
СПИСОК МАКРОКОМАНД
При создании макроса пользователь имеет возможность выбирать макрокоманду из списка для каждой строки бланка. Ниже приводится перечень макрокоманд Access с их кратким описанием. Макрокоманд немного, и, прежде чем планировать разработку собственного приложения, полезно ознакомиться с ними, чтобы решить, смогут ли макросы вам помочь, или потребуется использовать более мощные средства программирования.
Дата: 2018-12-28, просмотров: 318.