Как сделать макрос в access

Добавил пользователь Skiper
Обновлено: 05.10.2024

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

Использование макросов в базе данных Microsoft Access

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

Создание макросов. Конструктор макросов.

В Microsoft Access существует специальное средство для создания макросов – Конструктор макросов (Macro Design). Рассмотрим процесс создания макроса с помощью Конструктора.

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

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

Применение условий в макросах

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

Выполнение и отладка макросов

Способов запуска макросов очень много. Среди них есть прямые способы, когда макрос запускается непосредственно пользователем. Эти способы используются обычно при тестировании макросов. Когда макрос отлажен, создают специальную команду меню или кнопку на панели инструментов или связывают макрос с каким-либо событием в форме или отчете.

Запуск макроса

Запуск макроса из окна Конструктора макросов | Этот способ применяется для тестирования только что созданного или исправленного макроса. Если макрос в окне Конструктора макросов один, то для его запуска нужно просто нажать кнопку Запуск (Run) на панели инструментов или выбрать команду Запуск › По шагам (Run › Single Step) (последний способ позволяет отладить макрос).

Назначение макроса событию

Наиболее часто макросы используются в приложении Access для обработки событий. Событие – это любое действие, распознаваемое объектом, и можно определить реакцию объекта на событие. События происходят в результате действий пользователя, выполнения инструкций VBA или генерируются системой.

Вызов макроса из процедуры VBA

Как мы уже говорили, процедуры VBA и макросы в Access являются объектами близкими и часто взаимозаменяемыми, т. е. вместо макроса можно использовать процедуру VBA и наоборот. Существуют способы запуска макроса из процедуры VBA, запуска процедуры VBA из макроса, кроме того, Access позволяет преобразовать макрос в процедуру VBA. Такое преобразование описано в разд.

Отладка макросов и поиск ошибок

Обычно для отладки макроса его выполняют в пошаговом режиме. Для включения этого режима необходимо нажать кнопку По шагам (Single Step) на панели инструментов в окне Конструктора макросов или выбрать команду меню Запуск › По шагам (Run › Single Step).

Применение макросов

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

Преобразование макросов в процедуры VBA

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

Функциональность Microsoft Access рассчитана на людей без опыта в программировании. Для программистов и продвинутых пользователей в СУБД добавлена функция автоматизации рутинных действий при помощи коротких фрагментов кода. Рассмотрим, что собой представляют макросы в Access, чем отличаются от аналогов в других программах. Разберёмся с назначением, способом создания, отладкой.

Что такое макрос в Access

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

В Word и Excel макросы преимущественно автоматизируют проделываемые пользователем операции, зачастую связанные с кликами мышью и клавишами клавиатуры. В Access они также отвечают за автоматическое выполнение задач, расширяют функциональность объектов, элементов управления.

Иногда макросы именуются скриптами, что не совсем верно. Первые применяются относительно к конкретной программе, записываются при помощи встроенных в неё средств. Часто связываются с пользовательским вводом посредством мыши и клавиатуры – сводятся к кликам и перемещениям курсора. Скрипты пишутся на специализированных языках, автоматизируют задачи для пользователя.

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

При написании инструкций доступны команды Visual Basic, расширяющие возможности инструмента.

Добавьте нужные макрокоманды.

Функции макросов, их свойства, структура

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

  • Автономные – могут применяться при обработке иных фрагментов базы данных, вызывать один из другого.
  • Внедрённые – применяются к одной форме, конкретному отчёту, интегрируются в свойство объекта. Будут присутствовать в копии события, содержащего macros.
  • Вложенные – один макрос может быть вложенным во второй и вызываться из основного.

Любой macros состоит из:

  • Имени – не обязательно, если в состав входит один макрообъект.
  • Аргументов – предоставляют сведения для обработки макрокомандой. Бывают обязательными и необязательными.
  • Условий – указывают на требования, соблюдение которых приведёт к выполнению макрокоманды: Если, Иначе.
  • Макрокоманд – действий, которые Access выполнит с указанным объектом: отчётом, элементом интерфейса.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Информация о работе

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

Самый простой способ

Frmjobs

Цель изучения темы: научиться использовать элементы управления на формах, освоить приёмы назначения команд, гиперссылок и макросов для вызова реакции системы при взаимодействии пользователя с элементами управления на формах.

Под интерфейсом пользователя следует понимать такое представление справочной и командной информации, которая сгруппирована по определённым правилам, и даёт возможность с одной формы обращаться к различным таблицам, запросам, формам, отчётам и внешним объектам, по отношению к базе данных. Любой программный продукт в виде приложения создаётся под нужды определённой категории пользователей, которым удобно ориентироваться на форме приложения, выбирать необходимые тематические направления и запускать их. Обычно при создании интерфейса пользователя используют элементы управления, например, командные кнопки, селекторные кнопки, текстовые окна для ввода информации, рисунки и т.п. Каждый элемент управления обладает свойствами (для изменения внешнего вида элемента) и методами – небольшими программами, которые позволяют выполнять определённые действия, когда к этим элементам обращается пользователь. В серьёзных приложениях все возможные действия пользователя алгоритмизируются, по алгоритмам создают программу обработки события взаимодействия пользователя с элементом управления. Разработчики Access 2010 учли потенциальные потребности пользователей при взаимодействии с интерфейсом, который должен помогать осуществлять навигацию среди множества объектов (таблиц, запросов, форм, отчётов). Разработчику базы данных предложены варианты подходов при создании интерфейсов пользователя. Каждый подход имеет свои недостатки и достоинства, но, тем не менее, когда хотят оперативно создать интерфейс, используют самые простые возможности Access 2010. Связи между элементом управления (Рис. 129), внедрённого на форму, и объектом, который следует представить пользователю, организуются с помощью: встроенных программ (методов), которыми обладают элементы управления; гиперссылок; макросов и программных модулей на встроенном языке VBA .



Рис. 130. Варианты создания вкладок на форме навигации


Например, выбрали вариант , после того, как откроется форма навигации (Рис. 131), её можно заполнять и редактировать.


Рис. 131. Внешний вид формы навигации


Рис. 132. Назначение процедуры обработки события для кнопки


Рис. 133. Выбор формы для связывания с кнопкой


Рис. 134. Пример созданной формы для навигации


Объекты, которые входят в состав базы данных Access , являются самостоятельными элементами. Пользователю требуется организовать доступ к внешним объектам, к таблицам, к запросам, к отчётам, решить эту многоплановую задачу без какого-либо программирования можно, создав форму, в которой используются элементы управления, а связями между формой и отдельными объектами базы данных являются гиперссылки. Удобством разработки такого интерфейса является то, что не требуется создавать специальных программных модулей. Предположим, планово-экономическому отделу организации необходимо выполнять такие функции, как: вносить изменения в наименования должностей сотрудников; изменять коэффициенты доплат; готовить презентационные материалы для доклада руководству. Следовательно, необходимо подготовить такой интерфейс, который позволяет с одной формы осуществлять взаимодействие сотрудника планово-экономического отдела с таблицами, внешними приложениями, запросами и готовыми формами. Наиболее простой вариант решения такой задачи – создать общую форму для подключения других объектов, а связями будут являться гиперссылки. Спроектируем интерфейс таким образом, что пользователь увидит две вкладки. На первой будет группа объектов, которые доступны для внесения изменений, на второй – объекты, которые требуются для анализа данных. Удобнее всего начать работу с нуля, для этого на панели базы данных щёлкните по значку - Пустая форма.


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


4. Перенесите на вкладку элемент - Кнопка. Сделайте надпись на кнопке, например, «Открыть таблицу Excel для правки номенклатуры должностей.


Рис. 135. Пример создания гиперссылки на объект базы данных


Рис. 136. Пример созданной формы с элементами управления и гиперссылками для связи с объектами

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

11.4.1. Как создать и запустить макрос

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



Рис. 138. Окно для создания макроса

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


Рис. 139. Макрос, включающий 2 шага действий

1. Щёлкните правой кнопкой мыши в окне переходов по наименованию формы - , откройте её командой .


Обратите внимание, что макрос был сконструирован из макрокоманд, которые находятся в списке системы Access . Удобством использования макроса является и то, что он распространяется на все типы объектов базы данных.


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

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

Шаг 1. Разработка главной формы для руководителя.


Рис. 142. Форма с перечнем должностей в организации



Рис. 144. Закладка с бланком для создания макроса

Шаг 2. Выбор подчинённой формы и связывание её с главной формой


Рис. 145. Внешний вид формы, которая будет отображаться при запуске запроса из главной формы

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

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

3. Добавьте новую макрокоманду (Рис. 146), предварительно раскройте список , из которого выберите строку с наименованием .



Рис. 147. Результат работы макроса в форме

Вопросы для самоконтроля

1. Каким образом можно расположить элемент управления на форме?

2. Как задать свойства элементу управления?

3. Какие средства используют для организации выполнения действий, после того, как пользователь обратится к элементу управления?

4. Можно ли создать интерфейс пользователя для взаимодействия с несколькими формами без использования элементов управления на форме?

5. При создании формы навигации, что отражается на ярлыке вкладки, что отображается на поле вкладки?

6. Как связать элемент управления на форме с необходимым объектом внутри базы данных и с внешним объектом с помощью гиперссылки?

7. Как спроектировать макрос для внедрения в форму?

8. Можно ли создавать макросы с условиями, как это сделать?

9. Где отображаются макросы, накопленные в базе данных, что необходимо сделать, чтобы запустить макрос?

Читайте также: