• Использование макросов в базе данных Microsoft Access, Исследовать возможности Access по созданию макросов. Макросы в Access: понятие, формы и создание Алгоритм создания макросов в субд ms access

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

    Понятие макроса

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

    Вам будет интересно:

    Существует два вида макросов: событий и данных. Первый вид отвечает за действия в пользовательском интерфейсе. Он привязан к элементам форм и самим формам. К такому виду относятся выполнение операций при нажатии на кнопку, приобретение или потеря фокуса, открытие-закрытие формы и т. д.

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

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

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

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

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

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

    Предположим, вы хотите создать отчет непосредственно из одной из своих форм для ввода данных. Вы можете добавить в форму кнопку, а затем создать макрос, который открывает отчет. Макрос может быть либо автономным, т. е. отдельным объектом в базе данных, который связывается с событием OnClick кнопки, либо внедренным непосредственно в событие OnClick . В любом случае при нажатии кнопки макрос запускает и открывает отчет. Такие макросы обычно называют макросами пользовательского интерфейса.

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

    Создать макрос можно с помощью конструктора макросов, который показан на приведенном ниже рисунке.

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

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

      На вкладке Создание в группе Макросы и код нажмите кнопку Макрос .

    Чтобы открыть конструктор макросов данных, сделайте следующее:

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

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

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

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

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

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

      Обработка ошибок и устранение неполадок Access предоставляет действия макросов, включая OnError (аналогично оператору "On Error" в VBA) и ClearMacroError , позволяющие выполнять определенные действия, если во время работы макроса возникнет ошибка. Кроме того, действие макроса SingleStep позволяет переходить в режим пошагового выполнения из любой точки макроса, чтобы поэтапно просматривать его работу.

      Временные переменные Три действия макросов (SetTempVar , RemoveTempVar и RemoveAllTempVars ) позволяют создавать и использовать временные переменные в макросах. Их можно использовать в условных выражениях, чтобы управлять выполняющимися макросами, передавать данные в отчеты или формы либо из них, а также при выполнении любой другой задачи, требующей временного хранилища для значения. Эти временные переменные также доступны в VBA, поэтому с их помощью также можно передавать данные в модули VBA и из них.

    Дополнительные сведения о действиях макросов

    Во время работы в конструкторе макросов вы можете получить дополнительные сведения о действии или аргументе, щелкнув его и прочитав описание в поле в правом нижнем углу окна конструктора макросов. Кроме того, с каждым действием макроса связана статья справки. Чтобы узнать больше о действии, выберите его в списке действий и нажмите клавишу F1.

    Записать макрос в Access как, например, в приложении Word не представляется возможным, но в Access можно создать макрос в окне Конструктора макросов или в окне редактора Visual Basic for Application (VBA).

    Макросы в Access в основном создаются для обработки событий. Событие - это любое действие, которое распознается объектом и на которое можно определить отклик.

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

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

    В статье Макросы в БД Access 2003 рассмотрено создание макросов в окне Конструктора макросов, которое открывается командой Создать в окне базы данных на вкладке Макросы. Окно Конструктора макросов разделено по горизонтали на две части: панель описаний и панель аргументов. В панели описаний по умолчанию выводится два столбца: столбец для ввода макрокоманд и столбец для ввода примечаний. Макрокоманда - это инструкция, определяющая выполняемые действия в макросе.

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


    Рис. 1.

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

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

    Чтобы создать макрос, открывающий таблицу "Дисциплины", надо переместить с помощью мыши эту таблицу из окна БД в строку Макрокоманда окна Конструктора макросов. Кроме того, в аргументах макрокоманды можно установить Режим - Просмотр, Режим данных - Только чтение.



    Рис. 2.

    Аналогичным способом можно создавать макросы: Открыть форму, Открыть запрос, Открыть отчет или Запуск макроса.



    Рис. 3.

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


    Рис. 4.

    Для удаления кнопки с панели инструментов надо щелкнуть правой кнопкой на панели инструментов и из контекстного меню выбрать команду Настройка. В появившемся окне диалога Настройка на вкладке Команды в списке Категории выделить строку Все макросы. Перетащить левой кнопкой мыши кнопку с панели инструментов в список Команды окна диалога Настройка. В результате кнопка Откр_запрос будет удалена с панели инструментов.



    Рис. 5.

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

    Как правило, макросы связаны с “реакцией на событие” управляющих элементов Access 2007. События определяют, что происходит при нажатии кнопки, входе или выходе из поля БД, открытии или закрытии формы или отчета.

    Создание кнопок для запуска форм

    Создадим форму “Панель кнопок” для вызова некоторых форм Покупатель , Товар и Заказ нашей базы данных. Для этого выберем вкладку Создание на панели инструментов СУБД, а затем нажмем кнопку Макрос . На экране появится окно Макрос1. В нем имеется таблица с двумя полями. Первое из них предназначено для макрокоманд, второе – для аргументов.

    Нажмем на панели БД закладку Форма, выберем форму “Покупатель” и перетащим ее в первую строку таблицу определения макроса в столбец Макрокоманда, при этом появится текст ОткрытьФорму , в правой части окна появится название формы. Закроем макрос, сохраним его с именем “Покупатель”.

    Замечание. Можно непосредственно из списка макрокоманд выбрать макрокоманду ОткрытьФорму, а затем в параметрах (в нижней части экрана) указать форму «Покупатель».

    Теперь создадим форму для размещения кнопок. Выберем вкладку Создание в окне базы данных, затем команду Пустая форма . Перейдя в режим конструктора, перетащим созданный нами макрос “Покупатель” на форму. Там появится кнопка с надписью Покупатель . При просмотре списка можно обнаружить, что в свойстве Нажатие кнопки записано имя макроса «Покупатель».

    Закроем форму и сохраним ее с именем “Панель кнопок”. Для проверки работы откроем форму и нажмем кнопку Покупатель . На экране появится созданная нами ранее форма “Покупатель”, с помощью которой можно просматривать и вводить данные по покупателям.

    Задание

    1. Создать в форме “Панель кнопок” кнопки Товар и Заказ для форм “Товар” и “Заказ с полем со списком”.
    2. Добавить в форму “Панель кнопок” заголовок Основные формы ввода данных.
    3. Задайте разный тип оформления для элементов формы.

    Макросы. Автоматический запуск макроса при открытии БД

    При открытии БД Access удобно вывести на экран определенную форму, например, панель кнопок управления приложением. Сделаем так, чтобы при открытии нашей базы данных выводилась форма “Панель кнопок ”.

    Для этого выберем вкладку Создание, нажмем кнопку Макрос , при этом появится пустое окно макроса в режиме конструктора. Нажмем на поле в столбце Макрокоманда , из списка выберем макрокоманду ОткрытьФорму . В поле Имя формы укажем форму “Панель кнопок”. Закроем макрос и сохраним его с именем “AutoExec”.

    Теперь закроем нашу БД и откроем ее. При этом автоматически откроется форма “Панель кнопок”. Чтобы открыть БД без автоматического открытия этой формы, надо при открытии базы данных удерживать нажатой кнопку Shift.

    Теперь отменим автоматический запуск “Панели кнопок”. Для этого переименуем макрос “AutoExec” в “AutoExec1.

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

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

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

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

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

    В поле Макрокоманда можно выбрать необходимую команду (ОткрытьТаблицу, ОткрытьЗапрос, ОткрытьОтчет, ЗапускМакроса и т.д.) нажатием кнопкой мыши. Иначе в строку Макрокоманда можно просто перетащить любой объект базы данных (таблицу, форму и т.д.).

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

    Столбец Примечание служит для ввода комментария, который описывает выполняемое действие.

    Рассмотрим простой способ создания макрокоманды. Например, разработаем ее для открытия таблицы Группы базы данных Студент .

      Вы уже открыли окно Конструктора макросов . Теперь с помощью мыши перетащите таблицу Группы из Области переходов в столбец Макрокоманда . В результате в нем появится макрокоманда Открыть таблицу, причем Access автоматически заполнит поля панели аргументов (рис.1).

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

    Для того чтобы ввести значение аргумента макрокоманды вы можете выбрать аргумент из списка или ввести в его поле выражение. Справа от полей некоторых аргументов расположена кнопка построителя, в окне которого вводятся различные выражения. Перед выражением нужно ставить знак равенства (=), за исключением аргумента Выражение макрокоманды ЗадатьЗначение и аргумента Число повторов макрокоманды ЗапускМакроса .

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

    Последовательность выполнения:

      Перейдите на следующую строку окна конструктора макросов и в столбце Макрокоманда выберите макрокоманду Сообщение .

      В поле Сообщение панели аргументов введите текст «Данные доступны только для просмотра ». Аргумент Сигнал служит для определения того, будет ли вывод сообщения сопровождаться звуковым сигналом. В аргументе Тип выберите вид диалогового окна. Укажите, например, значение Предупреждающее !. В поле аргумент Заголовок , позволяющего задать текст заголовка окна сообщения, введите текст «О данных» .

      Сохраните макрос под именем Открыть группы .

    После запуска макроса будет отображена таблица Группы, открытая в режиме просмотра, и сообщение, представленное на рис.2.

    Рассмотрим еще один пример. Допустим, вам необходимо создать макрос, открывающий форму Список .

      Откройте окно конструктора макросов и из окна базы данных перенесите в него форму Список .

      Аргумент Имя формы содержит список всех форм базы данных.

      Аргумент Режим определяет режим, в котором форма должна быть открыта. Он может принимать значения: Форма, Конструктор, Просмотр, Таблица и др.

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

      Аргумент Условие отбора определяет условие для от­бора записей, отображаемых в форме. Условие представляет собой выражение.

      Аргумент Режим данных определяет способ работы с данными и может принимать одно из значений: Добавление, Изменение или Только чтение.

      Аргумент Режим окна определяет тип окна: Обычное, Невидимое, Значок и Окно диалога.

      В поле Имя фильтра , воспользовавшись ранее созданным фильтром СР-11 , введите текст СР-11 .

      В новой строке макроса выберите макрокоманду Сообщение , а на панели аргументов введите текст сообщения: Фильтр 11 группа . Задайте тип диалогового окна вывода сообщения, выбрав значение Информационное аргумента Тип .

      Сохраните макрос под именем 11 группа .