Как открыть запросы макросов в access. Использование макросов в базе данных Microsoft 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 2010появился новый конструктор макросов, упрощающий создание сложных макросов и позволяющий сократить количество ошибок при кодировании. Для этого в конструкторе применяются раскрывающиеся списки, технология IntelliSense, повторное использование существующих макросов, перетаскивание, а также копирование и вставка через буфер обмена.

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

Некоторые из его преимуществ указаны ниже.

Ø Каталог макрокоманд. Макрокоманды систематизированы по типу и поддерживают возможность поиска.

Ø IntelliSense. При вводе выражений функция IntelliSense предлагает возможные варианты и позволяет выбрать нужный.

Ø Сочетания клавиш. Сочетания клавиш ускоряют и упрощают создание макросов.

Ø Программный поток. Строки комментариев и группировка команд позволяют создавать более удобочитаемые макросы.

Ø Условные выражения. Позволяют создавать более сложную логику с использованием вложенных блоков "Если", "Иначе" и "Иначе если".

Ø Повторное использование макросов. В каталоге макрокоманд доступны макросы, которые были созданы ранее и которые можно копировать в текущие макросы.

Ø Упрощённый совместный доступ. Теперь можно скопировать макрос, а затем вставить его в виде XML-кода в сообщение электронной почты, сообщение в группе новостей, блог или на веб-сайт с примерами программного кода.

Если вам приходилось создавать макросы в предыдущих версиях Microsoft Access, вы наверняка помните конструктор макросов, состоящий из трёх столбцов (см. Рис. 3). Условные операторы добавлялись в столбец Условие, макрокоманды - в столбец Макрокоманда, а указанные параметры - в столбец Аргументы.

Рис. 3. Устаревшая версия конструктора макросов

Новый конструктор макросов для Access 2010больше похож на текстовый редактор. Трёх столбцов больше нет. Вместо них макрокоманды и условные операторы отображаются в раскрывающихся списках в привычном для программистов формате. Аргументы отображаются во встроенном диалоговом окне.

Приступим к созданию простого макроса действия в среде конструктора макросов Access 2010.

Конструктор предоставляет несколько способов добавить действие в макрос. Самый простой – воспользоваться выпадающим списком (см. Рис. 5, стр. 17).

Рис. 4. Внешний вид конструктора макросов

Рис. 5. Выпадающий список конструктора макросов


Рис. 6. Построитель макросов: а) вкладка Конструктор, б) список команд, в) каталог команд

При работе с макросом появляется вкладка «Конструктор» (см. Рис. 6а). Для добавления команды в макросдостаточно выбрать её из списка (см. Рис. 6б) или дважды щёлкнуть её в каталоге команд (см. Рис. 6в). При добавлении команды в построителе макросов появляются дополнительные параметры. Например, при добавлении команды If (если) становятся доступны параметры, позволяющие создавать сложные вложенные условия.

В Access 2010включено 86 встроенных макросов. Многие из них содержат дополнительные аргументы для придания им большей гибкости и функциональности. Например, макросОткрытьФорму предлагает список всех внешних форм из базы данных, также целый ряд дополнительных аргументов (см. Рис. 7, стр. 19). К примеру, изменяя аргумент Режим, можно открывать выбранную форму не только в режиме формы, но и в режимах конструктор, макет и в других.

Как отмечалось выше (стр. 17, Рис. 5), для добавления действий используется выпадающий список, который также можно использовать для добавления блоков (Если … Иначе ).

Рис. 7. Макрос ОткрытьФорму

В конструкторе макросов предыдущих версий Microsoft Access в столбце Условие (см. Рис. 3, стр. 16) можно было создавать простые условные операторы. В конструкторе макросов Access 2010можно создавать более универсальные операторы ЕСЛИ (If) путём добавления операторов Иначе Если (ElseIf) и ИНАЧЕ (Else). Чтобы добавить эти операторы, выберите блок ЕСЛИ и щёлкните в правом нижнем углу блока кода текст ИНАЧЕ Если или ИНАЧЕ . Например, если щёлкнуть текст ИНАЧЕ Если , откроется диалоговое окно ИНАЧЕ Если . По мере ввода кода в поле условия в приложении Microsoft Access с помощью технологии IntelliSenseбудут отображаться идентификаторы, функции и другие элементы базы данных.

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

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

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

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

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

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

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

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

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

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

Задание

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

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

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

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

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

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

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

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

НА ТЕМУ:

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

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

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

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

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

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

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

Харьков, 2016

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

Цель:

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

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

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

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

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

План

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

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

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

    Макросы в MS Access .

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

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

    Итог урока.

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

Ход урока

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

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

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

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

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

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

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