Создание макросов в access. Макросы в субд microsoft acces

05.09.2023 Операционные системы

Что такое макрос?

Макрос - это средство для автоматизации задач и добавления функциональных возможностей в формы, отчеты и элементы управления. Например, при добавлении командной кнопки в форму событие кнопки OnClick связывается с макросом, который содержит команды, выполняемые при каждом нажатии кнопки.

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

Предположим, требуется запустить отчет непосредственно из формы ввода данных. Можно добавить в форму кнопку и затем создать макрос, который будет запускать отчет. Макрос может быть изолированным (отдельный объект в базе данных), который затем связывается с событием OnClick для кнопки, или же он может быть внедрен непосредственно в событие кнопки OnClick - это новая возможность в Office Access 2007. В любом случае, при нажатии кнопки выполняется макрос, который запускает отчет.

Макрос создается с помощью построителя макросов, показанного на следующем рисунке.

Чтобы отобразить построитель макросов

Общие сведения о макросах

Термин «макрос» часто используется по отношению к изолированным макрообъектам (то есть объектам, отображаемым в области переходов в разделе Макросы ), но на самом деле, один макрообъект может содержать несколько макросов. В этом случае он называется группой макросов . Группа макросов отображается в панели переходов как один объект, хотя в действительности содержит несколько макросов. Разумеется, каждый макрос может быть создан как отдельный макрообъект, но зачастую имеет смысл сгруппировать несколько связанных макросов в один макрообъект. Имя в столбце Имя макроса идентифицирует каждый макрос.

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

Имена макросов

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

Аргументы

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

В построителе макросов в Office Access 2007 имеется столбец Аргументы , позволяющий просматривать (но не изменять) аргументы макрокоманды в строке макрокоманды. Так легче читать макрос, так как уже не нужно выбирать каждую макрокоманду, чтобы увидеть ее аргументы. Чтобы отобразить столбец Аргументы , нажмите кнопку Аргументы в группе Отображение на вкладке Конструктор .

Условия

Условие определяет требования, которые должны быть соблюдены, для того чтобы была выполнена макрокоманда. Можно использовать любое, результатом которого являются значения «Истина» или «Ложь» либо «Да» или «Нет». Если выражение вычисляется как «Ложь», «Нет» или 0 (нуль), макрокоманда не будет выполнена. При любом другом значении выражения макрокоманда будет выполнена.

Одно условие может управлять несколькими макрокомандами, если в столбце Условие ввести многоточие (...) для каждой следующей по порядку макрокоманды, к которой будет применяться данное условие. Если выражение вычисляется как «Ложь», «Нет» или 0 (нуль), ни одна из макрокоманд не будет выполнена. При любом другом значении выражения будут выполнены все макрокоманды.

Для отображения в построителе макросов столбца Условия на вкладке Конструктор в группе Отображение нажмите кнопку Условия

Выражение, используемое как условие Условие, при котором выполняется макрокоманда
[Город]="Париж" Поле «Город» в форме, из которой запускается макрос, имеет значение «Париж».
DCount("[КодЗаказа]", "Заказы")>35 Количество записей в поле «КодЗаказа» таблицы «Заказы» превышает 35.
DCount("*", "Заказано", "[КодЗаказа]=Forms![КодЗаказа]![КодЗаказа]")>3 В таблице «Заказано» содержится более 3 записей, у которых поле «КодЗаказа» в таблице соответствует полю «КодЗаказа» в форме «КодЗаказа».
[ДатаИсполнения] Between #2-фев-2006# And #2-мар-2006# Значение поля «ДатаИсполнения» в форме, из которой запускается макрос, попадает в интервал со 2 февраля 2006 по 2 марта 2006 г.
Forms![Товары]![На складе]<5 Значение поля «На складе» в форме «Товары» меньше 5.
IsNull([Имя]) Поле «Имя» в форме, из которой запускается макрос, имеет значение (не заполнено). Это выражение эквивалентно следующему: [Имя] Is Null.
[Страна]="UK" And Forms![СуммыПродаж]![ВсегоЗаказов]>100 Поле «Страна» в форме, из которой запускается макрос, имеет значение «Великобритания», и значение поля «ВсегоЗаказов» в форме «СуммыПродаж» больше 100.
[Страна] In ("Франция", "Италия", "Испания") And Len([Индекс])<>5 Поле «Страна» в форме, из которой запускается макрос, имеет значение «Франция», «Италия» или «Испания», и почтовый индекс содержит не 5 символов.
MsgBox("Подтвердить изменения?",1)=1 Нажата кнопка ОК в диалоговом окне, в котором функция MsgBox отображает текст «Подтвердить изменения?». Если в диалоговом окне нажата кнопка Отмена эта макрокоманда будет пропущена.
!=2 Временная переменная, которая используется для хранения результата окна сообщения, равна 2 (vbCancel=2).

Совет. Чтобы приложение Access временно пропускало макрокоманду, введите в качестве условия значение «Ложь». Временный пропуск макрокоманды может применяться при поиске ошибок в макросе.

Макрокоманды

Макрокоманды - это простейшие элементы, из которых строится макрос. В приложении Access предусмотрен большой выбор макрокоманд, которые позволяют выполнять разнообразные действия. Например, наиболее часто используются макрокоманды для открытия отчета, поиска записи, отображения окна сообщения или применения фильтра к форме или отчету.

Новые возможности макросов в Office Access 2007

В предыдущих версиях Access для выполнения наиболее часто используемых функций требовалось написание кода VBA. В Office Access 2007 включены новые возможности и макрокоманды, которые позволяют избежать этого. Благодаря им процесс добавления функциональных возможностей в базу данных стал проще и надежнее.

Создание макроса

В Office Access 2007 макрос или группа макросов могут быть заключены в объект макроса (называемый иногда изолированным макросом), или макрос может быть внедрен в любое свойство события в форме, отчете или элементе управления. Внедренные макросы становятся частью объекта или элемента управления, в которые они внедрены. Изолированные макросы отображаются в области переходов в разделе Макросы , в отличие от внедренных.

Функции построителя макросов

Построитель макросов служит для создания и изменения макросов. Он открывается следующим образом.

Приложение Access откроет построитель макросов.

Построитель макросов используется для создания списка макрокоманд, которые должны выполняться при запуске макроса. При первом открытии построителя макросов отображаются столбцы Макрокоманда , Аргументы и Примечание .

В области Аргументы макрокоманды при необходимости вводятся или изменяются аргументы для каждой макрокоманды. В поле описания отображается краткое описание каждой макрокоманды и аргумента. Для просмотра описания щелкните макрокоманду или аргумент.

В следующей таблице показаны команды, доступные на вкладке Конструктор в построителе макросов.

Группа Команда Описание
Сервис Выполнить Выполнение макрокоманд, перечисленных в макросе.
Пошагово Включение режима пошагового выполнения макроса. При запуске макроса в этом режиме происходит поочередное выполнение каждой макрокоманды. После завершения каждой макрокоманды отображается диалоговое окно Пошаговое исполнение макроса . Для перехода к следующей макрокоманде нажмите в этом диалоговом окне кнопку Шаг . Нажмите кнопку Остановить все макросы , чтобы остановить исполнение этого и всех остальных макросов. Нажмите кнопку Далее , чтобы выйти из пошагового режима и выполнить остальные макрокоманды без остановки.
Построитель Эта кнопка активируется при вводе аргумента макрокоманды, содержащего выражение. Щелкните кнопку Построитель , чтобы открыть диалоговое окно Построитель выражений , в котором можно создать выражение.
Строки Вставить строки Добавление одной или нескольких пустых строк макрокоманд над выбранными строками.
Удалить строки Удаление выбранных строк макрокоманд.
Отображение Отобразить все макрокоманды

Отображение большего или меньшего количества макрокоманд в раскрывающемся списке Макрокоманда .

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

Совет. Если кнопка Отобразить все макрокоманды выделена, снимите выделение, нажав эту кнопку.

Если кнопка Отобразить все макрокоманды не выделена, доступен краткий список макрокоманд для надежной базы данных.

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

Создание изолированного макроса

  1. Добавьте в макрос макрокоманду.
  • В построителе макросов щелкните первую пустую ячейку в столбце Макрокоманда .
  • Введите нужную макрокоманду или щелкните стрелку, чтобы раскрыть и выбрать из него нужную макрокоманду.
  • В разделе Аргументы макрокоманды при необходимости укажите аргументы для макрокоманды. Щелкните поле аргумента, чтобы увидеть его краткое описание справа от аргумента.
  • Для, значения которых служат именами, можно задать значение, перетащив объект из области переходов в поле аргумента Имя объекта .
  • Можно также создать макрокоманду, перетащив объект базы данных из области переходов в пустую строку в построителе макросов. При перетаскивании таблицы, запроса, формы, отчета или модуля в построитель макросов добавляется макрокоманда, открывающую таблицу, запрос, форму или отчет. При перетаскивании макроса в построитель макросов добавляется макрокоманда, запускающая макрос.
  1. Чтобы добавить в макрос следующую макрокоманду, перейдите в другую и повторите шаг 2. Приложение Access выполняет макрокоманды в том порядке, в котором они перечислены.

Создание группы макросов

Для группировки нескольких связанных макросов в один объект макроса можно создать группу макросов.

Будет открыт построитель макросов.

Примечание. Имена макросов необходимы в группе, чтобы можно было различать отдельные макросы. Имя макроса появляется в одной строке с первой макрокомандой макроса. Столбец имени макроса остается пустым всех для последующих макрокоманд данного макроса. Макрос заканчивается при вводе следующего имени макроса в этом столбце.

  1. В столбце Имя макроса введите имя первого макроса из группы.
  2. Добавьте макрокоманды для исполнения в первом макросе.
  • В столбце Макрокоманда щелкните стрелку, чтобы раскрыть список макрокоманд.
  • Выберите макрокоманду, которую требуется добавить.
  • В разделе Аргументы макрокоманды укажите аргументы макрокоманды, если они нужны. Щелкните поле аргумента, чтобы увидеть его краткое описание справа от аргумента.
  • Для аргументов макрокоманд, параметры которых служат именами объектов базы данных, можно задать аргумент, перетащив объект из области переходов в поле аргумента Имя объекта .
  • Можно также создать макрокоманду, перетащив объект базы данных из области переходов в пустую строку в построителе макросов. При перетаскивании таблицы, запроса, формы, отчета или модуля в построитель макросов добавляется макрокоманда, открывающая таблицу, запрос, форму или отчет. При перетаскивании макроса в построитель макросов добавляется макрокоманда, запускающая макрос.
  • При необходимости введите примечания к макрокоманде.
  1. Перейдите к следующей пустой строке в столбце Имя макроса и введите имя очередного макроса из группы.
  2. Добавьте макрокоманды для выполнения в этом макросе.
  3. Повторите действия 5 и 6 для каждого макроса в группе.

Примечания

ИмяГруппыМакросов.ИмяМакроса

Например, название «Кнопки.Товары» относится к макросу «Товары» в группе макросов «Кнопки». В списке макросов, например, в списке аргументов «Имя макроса» для макрокоманды ВыполнитьМакрос , макрос «Товары» будет отображаться как «Кнопки.Товары».

Создание внедренного макроса

Внедренные макросы отличаются от изолированных тем, что хранятся в свойствах событий в формах, отчетах или элементах управления. Они не отображаются как объекты в разделе Макросы в области переходов. Это облегчает управление базой данных, поскольку отпадает необходимость отслеживать отдельные макрообъекты, содержащие макросы для формы или отчета. Используйте следующую процедуру для создания внедренного макроса.

Примечание. Внедренные макросы нельзя преобразовать в модули Visual Basic для приложений (VBA) с помощью инструмента в группе Макрос на вкладке Инструменты для базы данных . Если планируется со временем преобразовать макрос в модули VBA, постройте изолированный макрос, а не внедренный. В таком случае можно будет воспользоваться инструментом Преобразование макроса в модули Visual Basic для преобразования макросов в VBA.

Чтобы выбрать всю форму или отчет, выберите Отчет в раскрывающемся списке вверху страницы свойств.

Макрос будет выполняться каждый раз при возникновении события.

Примечание. Приложение Access позволяет создавать группу макросов как внедренный макрос. Однако при возникновении события выполняется только первый макрос из группы. Остальные макросы игнорируются, если они не вызываются из самого внедренного макроса (например, макрокомандой ПриОшибке ).

Пример. Внедрение макроса в событие отчета «Отсутствие данных»

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

  1. Обратите внимание, что в предыдущей таблице аргументы представлены в том виде, в каком они отображаются в столбце Аргументы . Фактически они вводятся в разделе Аргументы макрокоманды , как показано в следующей таблице.
  1. Нажмите кнопку Закрыть .

Построитель макросов будет закрыт, а для события Отсутствие данных будет выведено сообщение [Внедренный макрос] .

  1. Сохраните и закройте отчет.

Если при следующем запуске отчета записи не будут обнаружены, появится окно сообщения. При нажатии в этом окне кнопки ОК отчет будет отменен без отображения пустой страницы.

В предыдущих уроках были рассмотрены объекты баз данных: таблицы, запросы, формы и отчеты. Для расширения функциональных возможностей создаваемых Вами приложений с помощью СУБД Access рассмотрим технологию создания таких объектов как макросы и модули.

Начнем с макросов. Макросы - это небольшие программы на языке макрокоманд СУБД Access, состоящие из последовательности определенных команд (одной или нескольких макрокоманд). Набор макрокоманд в Access очень широк. Макросы являются простейшими средствами автоматизации действий над объектами Access. Необходимо отметить, что макросы легко создавать, и для этого не нужно знать синтаксис языка программирования.

Итак, для создания макроса откроем базу данных Training_students_O и переключимся на вкладку Макросы (скриншот окна БД представлен на рисунке 1).


Рис. 1.

Чтобы создать новый макрос, надо щелкнуть на кнопке Создать, откроется окно конструктора макросов.



Рис. 2.

В этом окне надо выбрать макрокоманду из выпадающего списка, щелкнув на кнопке открытия списка макрокоманд. В списке насчитывается около 50 различных макрокоманд для выполнения действий.



Рис. 3.

Сначала выберем макрокоманду из выпадающего списка, например макрокоманду "ОткрытьЗапрос", которая открывает какой-либо запрос, а затем выберем имя запроса из всех существующих запросов текущей базы данных, например "Успеваемость студентов". Далее необходимо сохранить созданный макрос под уникальным именем, например "Откр_запрос".



Рис. 4.

Закроем окно конструктора макросов.



Рис. 5.

Затем запустим макрос, щелкнув на кнопке "Запуск" или дважды щелкнув на макросе "Откр_запрос", в результате макрос выполнит все действия, которые в нем записаны, т.е. откроет запрос на выборку "Успеваемость студентов".



Рис. 6.

Этот макрос можно изменить, например, выполнить в одном макросе несколько действий, для этого надо открыть макрос в режиме конструктора и добавить требуемые действия.

ПЛАН-КОНСПЕКТ УРОКА

НА ТЕМУ:

« Работа с макросами в MS Access .

Техника создания макроса »

Выполнила : Сумцова Л.С.,

преподаватель

Центра профессионально-

технического образования № 2

города Харькова

Харьков, 2016

Тема «Работа с макросами в MS Access . Техника создания макроса»

Цель:

    изучить теоретический материал;

    научиться создавать макросы с помощью Конструктора макросов;

    развивать внимательность, аккуратность, усидчивость;

    воспитывать информационную культуру учащихся.

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

План

    Организационный момент.

    Изучение нового материала.

    Определение макроса.

    Макросы в MS Access .

    Конструктор макросов.

    Создание кнопки для запуска макроса на стандартной панели инструментов. Удаление кнопки.

    Итог урока.

Домашнее задание

Ход урока

1. Организационный момент, перекличка, выяснение причин отсутствия, назначение дежурных.

2. Актуализация опорных знаний. Фронтальный опрос.

Определение отчета в MS Access

Создание отчета как объекта базы данных – как?

Структура отчета в режиме Конструктора

Печать отчета

3. Изучение нового материала.

Представляют собой как бы контейнер, в котором хранятся простейшие команды (макрокоманды), последовательно выполняющиеся. Закономерно возникает вопрос: «А зачем они тогда нужны, если все простейшие команды и так доступны с помощью команд меню и кнопок панелей инструментов?».

Во-первых , на панелях инструментов и в меню мы можем выбирать не более одной команды за один раз, а макрос всю последовательность заданных команд выполняет сам – одну за другой и очень быстро (например, от открывает форму-бланк справки и подставляет туда значения из текущей записи в главной форме, да ещё и распечатывает этот бланк на принтере).

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

В форме для просмотра есть кнопка «Ввод данных», при нажатии на которую запускается макрос «ВызовФормыВвода». Первая команда «ОткрытьФорму» загружает вспомогательную форму для изменения информации. Команда «КЭлементуУправления» отправляет нас в невидимое ключевое поле «Код».

«НайтиЗапись» загружает запись с тем же кодом, что в форме для просмотра (если мы просматривали данные по Войтович, то во вспомогательной форме тоже должны быть данные по Войтович). Четвёртая команда «КЭлементуУправления» переводит курсор в поле [Фамилия], т. е в первое поле формы.

Во-вторых , макросы в access обладают возможностью запускаться только при определённых значениях.

Например, мы можем распечатать списки нуждающихся в улучшении жилищных условий по каждому городу отдельно или общий список (форма «Печать списков состоящих на учёте» учебной базы «Жильё»).

Кнопка «Просмотр» выводит отчёты на экран, а «Печать» на принтер.

Кнопка «Отмена» закрывает форму «Печать списков состоящих на учёте» без каких-либо других действий.

При выборе переключателя «для всех населённых пунктов» выводится отчёт с общим списком всех нуждающихся в улучшении жилищных условий. При выборе «для конкретного населённого пункта» будет выведен отчёт для выбранного из списка города.

Аксесс довольно сложная программа. Это подтверждает тот факт, что в интернете можно найти массу информации по ней. Однако, вы знаете что на самом деле достаточно знать лишь 20% инструментов, чтобы создавать и настраивать 80% баз данных в программе?
В-третьих
, макросы в access могут запускаться только при определённых и нужных нам событиях (открытие или закрытие формы, щелчок мышкой, нажатие кнопки и др.).

Например, требуется при нажатии на заданную кнопку вызвать системный калькулятор Windows. Очень удобно и не надо делать лишних движений.

Кнопке «Калькулятор» просто задаётся макрос с единственной макрокомандой «ЗапускПриложения», в которой указывается командная строка к приложению (например, С:\Windows\calc. exe). Хотя можно просто задать гиперссылку кнопке «Калькулятор» на программу calc. exe.

Отчёт предназначен для вывода на экран информации по юбилярам за определённый пользователем месяц. Если в каком-либо месяце нет юбиляров, то, разумеется, в отчёте не будет и записей. Вследствие этого автоматически генерируется событие отчёта «Отсутствие данных», которому мы задали макрос.В приведённом ниже примере стандартному свойству «Отсутствие данных» в некотором отчёте присвоен макрос, состоящий из двух макрокоманд.

Первая макрокоманда «ОтменитьСобытие» просто-напросто не выводит на экран пустой отчёт.

Вторая команда «Сообщение» выводит на экран диалоговое окно с поясняющим текстом. Если бы сообщение не выводилось, то рядовой пользователь не понял бы, почему отчёт не появляется на экране, решив, что произошла ошибка.

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

Подсчет количества записей во всем отчете

1.Откройте отчет в режиме конструктора.

2.Добавьте вычисляемое поле в примечание отчета.

3.Чтобы открыть окно свойств, убедитесь, что нужное поле выбрано, и нажмите кнопку Свойства на панели инструментов.

4. Введите в ячейку свойства Данные вычисляемого поля выражение =Count(*). Это выражение использует функцию Count для подсчета всех записей отчета включая записи, имеющие пустые значения в некоторых полях.

Макрос. Макрокоманда или набор макрокоманд, используемый для автоматического выполнения некоторых операций.

Макросом называют набор из одной или более макрокоманд, выполняющих определенные операции, такие как открытие форм или печать отчетов. Макросы могут быть полезны для автоматизации часто выполняемых задач.

Работа с формами и отчетами существенно облегчается за счет использования макрокоманд. Microsoft Access предоставляет свыше 40 макрокоманд, которые вы можете включать в макросы. Макрокоманды выполняют такие действия, как открытие таблиц и форм, выполнение запросов, запуск других макросов, выбор пунктов меню, изменение размеров открытых окон и т. п. С их помощью вы можете даже осуществлять запуск других приложений, поддерживающих дина­мический обмен данных (DDE), например Microsoft Excel, и производить обмен данными между вашей базой данных и другими приложениями. Макрокоманды можно объединять в макрос и задавать условия их выполнения.

Microsoft Access предоставляет различные типы макрокоманд, позволяющие автоматизировать работу приложения. Вы можете использовать макросы для выполнения следующих действий:

Открытия таблицы, запроса, формы или отчета в любом доступном режиме.

С помощью макросов вы можете закрыть открытую таблицу, запрос,

форму или отчет;

Открытия отчета в режиме предварительного просмотра или непосредст­венного вывода на принтер. Вы можете вывести данные из отчета в файл в формате RTF (.rtf), в обычном текстовом формате (.txt) или в файл Microsoft Excel (.xls) и затем открыть их в Microsoft Word, WindowsNotepad или в Microsoft Excel;

Выполнения запроса на выборку или запроса на изменение. При этом

параметры запроса могут использовать значения элементов управления

любой открытой формы;

Выполнения действий в зависимости от значений в базе данных, форме или

отчете. Макросы могут запускать другие макросы и вызывать функ­ции

VBA. Вы можете прервать выполнение текущего макроса или всех

макросов, отменить событие, запустившее макрос, или даже выйти из

приложения;

Установки значения любого элемента управления формы или отчета. Можно эмулировать работу с клавиатурой и передавать вводимые с клавиатуры данные в системные окна диалога. С помощью макросов можно обновлять значения в любых элементах управления, источником данных которых является запрос;



Применения фильтра, перехода к любой записи и поиска данных в базовой таблице или запросе формы;

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

Выполнения команды любого меню Access;

Перемещения, изменения размеров, сворачивания или восстановления любого окна внутри рабочей области Access. Вы можете передавать фокус любому из окон или любому элементу управления в окне, выбирать страницу отчета и выводить ее в режиме предварительного просмотра;

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

Переименования любого объекта базы данных, копирования выбранного объекта в текущую или другую базу данных Access. Можете использовать макросы для сохранения или удаления объектов из вашей базы данных. Кроме того, макросы позволяют импортировать, экспортировать или связывать таблицы из других баз данных, импортировать или экспорти­ровать электронные таблицы и текстовые файлы;

Запуска приложения, а также для обмена данными с приложением с помощью механизма DDE или буфера обмена. Вы можете вывести данные из таблицы, формы, запроса или отчета в выходной файл и открыть его в соответствующем приложении. Можно также передать последователь­ность нажатий клавиш в приложение, ожидающее ввода с клавиатуры.

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

Создание простых макросов

1. Чтобы начать работу с макросами, в окне базы данных щелкните левой кнопкой мышки на вкладку Макросы (Macros), на экране появится следующее окно:

Выбрана вкладкаМакросы

Рисунок 2

3. Верхняя часть окна используется для определения макроса, а нижняя предназначена для ввода значений аргументов макрокоманд, включенных в него. В верхней части присутствуют по крайней мере два столбца с заголовками Макрокоманда и Примечание. Нажав кнопки Имена макросов (1) и Условия (2) на панели инструментов, вы можете увидеть все четыре столбца, показанные на рисунке 3

Рисунок 3

Обратите внимание на область (4) в правой нижней части окна макроса, в которой

выводится краткая справка. Содержание сообщения меняется в зависимости от положения курсора в верхней части окна макроса (помните: для получения контекстной справки всегда можно нажать клавишу F1).

4. В столбце Макрокоманда задается одна из 49 макрокоманд, предоставляемых

Access. Если вы щелкнете в любой ячейке столбца Макрокоманда, то в правом конце ячейки появится кнопка (3) со стрелкой вниз. Нажатие этой кнопки откры­вает список макрокоманд, показанный на Рис. 4

Например, выберите в списке макрокоманду Сообщение. Она используется для открытия модального окна диалога с сообщением. Это прекрасный способ для вывода в приложении разного рода предупреждающих или информационных сообщений без создания для этого специальной формы.

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

После выбора макрокоманды, такой как Сообщение, Access выведет в нижней части окна макроса ее аргументы.

(Для перехода из верхней части окна макроса в нижнюю и обратно вы можете воспользоваться клавишей F6.)

Рисунок 4

Значение аргумента Сообщение представляет собой текст, выводи­мый Access в окне диалога, введем туда Приглашение . Аргумент Сигнал служит для воспроизведе­ния звукового сигнала при появлении окна диалога, введем Да . Аргумент Тип позволяет поместить в окно сообщения значок, например красный круг с белым перекрестием, выберем из приведенных альтернатив Информационное . В ячейку аргумента Заголовок вводится текст, отображае­мый в заголовке окна диалога (Полный текст сообщения: Добро пожаловать в новую базу данных.). Т.е. окно создания простого макроса с использованием макрокоманды Сообщение будет выглядеть следующим образом (Рис 5.):

Рисунок 5

В столбце Макрокоманда с помощью кнопки (6) можно добавить еще строчку для макрокоманды, а с помощью кнопки (5) – удалить любую строку.

5 Перед запуском макрос необходимо сохранить. Выберите в строке меню Microsoft Access команду Файл | Сохранить (или Файл | Сохранить как/экспорт). При использовании команды Файл | Сохранить Access откроет окно диалога, приведенное на Рис.6. Введите имя Макрос1 и нажмите кнопку ОК, чтобы сохранить макрос.

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

Чтобы начать пошаговую проверку, нажмите кнопку (7) По шагам, а затем - Запуск (8) . Access выведет на экран окно диалога Пошаговое исполнение макроса, представленное на Рис. 7

Рисунок 6

Рисунок 7

7 Если вы нажмете кнопку (9) Шаг, запустится макрокоманда, представленная в окне диалога, и Access выведет на экран модальное окно диалога с созданным нами сообщением, показанное на Рис.8:

Рисунок 8

8 Нажмите кнопку ОК, чтобы закрыть окно. Если в макросе определено несколько макрокоманд, после первого шага вы вернетесь в окно диалога Пошаговое исполнение макроса, которое покажет следую­щую готовую к исполнению макрокоманду. Поскольку в нашем случае макрос состоит всего из одной макрокоманды, Access возвратит вас в окно макроса (Рис 5). По окончании еще раз нажмите кнопку (7) По шагам, чтобы отменить пошаговый режим. В противном случае вы останетесь в пошаговом режиме при выполнении любого макроса, пока не закроете и не перезапустите Access.

Примечание:

Если во время выполнения приложения в каком-нибудь макросе встретится ошибка, Access сначала выведет окно диалога, объясняющее ее. Затем вы увидите похожее на Пошаговое исполнение макроса окно диалога Ошибка выполнения макрокоманды с информацией о макрокоманде, вызвавшей ошибку. В этот момент можно нажать только кнопку Прервать и отредактировать макрос, чтобы устранить причину ошибки.