Макрокоманда открыть схему в access. Макросы в Access

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

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

Для открытия (или закрытия) любой таблицы, запроса, формы или отчета в любом доступном режиме;

Для выполнения запроса на выборку или запроса на изменение;

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

Для запуска других макросов или процедур VBA;

Для применения фильтра и запуска приложений;

И многое другое.

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

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

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

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

Макрокоманды, составляющие макрос, вводятся в столбец Макрокоманды (рис.13.2). Для ввода макрокоманды можно нажать в этом столбце кнопку раскрытия списка макрокоманд и выбрать нужную. В правой нижней части окна макроса выводится краткая справка, содержание которой зависит от положения курсора в верхней части окна макроса.

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

Использование в макросах ссылок на объекты.

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

Ссылаться на объекты можно по имени, но нужно учесть, что в Access объекты объединяются в семейства. Формы объединены в семейство Формы (Forms), отчеты – в семейство Отчеты (Reports). Поэтому ссылка на объект включает имя семейства и, через восклицательный знак, имя объекта. Например, для ссылки на форму необходимо записать так: Forms ![Товары].

Рис. 13.1.Окно нового макроса

Рис.1 3 . 2 . Список макрокоманд в окне макроса

В ссылке на элемент управления вслед за именем объекта через восклицательный знак записывается имя элемента управления, заключенное в квадратные скобки. Например, в форме КАФЕДРА ссылка на элемент управления Надпись с именем Название записывается так: Forms ![КАФЕДРА]! [Название].

Forms ![Имя формы]! [Имя подчиненной формы]. Forms ![Элемент подчиненной формы]

Структура некоторых макрокоманд.

1. Макрокоманда ОткрытьФорму . Позволяет открывать форму и отбирать данные. Аргументы макрокоманды: Имя формы (из списка выбрать имя), Режим (форма, конструктор, просмотр и др.), Имя фильтра (имя запроса на выбор данных), Условие отбора (условие на языке SQL) и др.

2. Макрокоманда Закрыть . Закрывает форму, отчет, запрос и т.д. Аргументы макрокоманды: Тип объекта (форма, отчет, таблица и др), Имя объекта (Выбирается из списка), Сохранение (да, Нет, Подсказка)

3. Макрокоманда ПрименитьФильтр . Отбирает данные в открытой форме. Аргументы макрокоманды: Имя фильтра (имя запроса на выборку), Условия отбора (выражение SQL без слова WHERE).

4. Макрокоманда ЗадатьЗначение . Проводит вычисления в элементах управления форм, отчетов. Аргументы макрокоманды: Элемент (элемент управления типа Поле ), Выражение (Арифметическое выражение или значение).

5. Макрокоманда Печать . Печатает открытую форму, отчет. Аргументы макрокоманды: Распечатать (Все, Фрагмент, Страницы), Со страницы (Начальная страница печати), По страницу (Конечная страница печати), Разрешение (качество печати: например, среднее), Число копий .

6. Макрокоманда Выход . Осуществляет выход из Access. Аргументы макрокоманды: Параметры (Сохранить все, Подтверждение и др.).

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

- из окна макроса - нажать кнопку Запуск на панели инструментов;

- из окна базы данных - нажать на вкладку Макросы , установить курсор на имени макроса и нажать кнопку Запуск ;

- из любого окна Access - следует выполнить команды

Сервис Макрос Выполнить макрос Указать имя макроса ОК

- автоматический запуск макроса при открытии базы данных - задать ему имя AutoExec .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Действия по разработке макросов Access выполняют в конструкторе. Команда выбирается из списка и добавляется в окно макроса. Здесь операция раскрывается и запрашивает ввод параметров.

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

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

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

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

В мастере выбираем категорию «Разное» - «Выполнить макрос» и выбираем заранее созданный объект из списка предложенных. Таким образом, программа привязывается к элементу формы и реагирует на событие со стороны этого элемента.

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

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

Макросы данных

В версии Access 2010 и выше стали доступны макросы данных. Они вызываются изменениями, происходящими в элементах какого-либо объекта, или независимы и вызываются по наименованию. Благодаря этому типу макросов Access приобретает возможности «продвинутых» СУБД (система управления базами данных).

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

Эти программные единицы добавляются в режиме таблицы. На вкладке «Работа с таблицами» - «Таблица» выбирается, когда будет срабатывать макрос: до или после изменения/удаления, после вставки. Здесь же можно добавить именованный макрос, вызываемый по наименованию. Список макрокоманд здесь содержит операции, которые выполняются с данными - ошибками в значениях, полями, записями таблиц.

Условия

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

В приведенном примере мы закрываем форму «Абитуриенты», если поле «Фамилия» пустое. Если же это не так, мы сохраняем запись и только после этого закрываем форму.

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

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

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

В табл. 11.1 содержится список макрокоманд Microsoft Access 2002, сгруппированных по категориям: работа с данными в формах и отчетах; выполнение команд, макросов, процедур и запросов; работа с объектами; импорт/экспорт данных и объектов и прочие. В категорию "Прочие" собраны все макрокоманды, которые позволяют влиять на интерфейс приложения.

Категория Назначение Макрокоманда
Работа с данными в формах и отчетах Отбор данных Применить Фильтр (ApplyFilter)
Перемещение по данным СледующаяЗапись (FindNext) НайтиЗапись (FindRecord) КЭлементуУправления (GoToControl) НаСтраницу (GoToPage) НаЗапись (GoToRecord)
Обновление данных или экрана Обновление (Requery) ПоказатьВсеЗаписи (ShowAllRecords)
Выполнение Выполнение команды Выполнить Команду (RunComraand)
Выполнение макроса, процедуры или запроса ЗапускМакроса (RunMacro) Залуск Программы (RunCode) ОткрытьЗапрос (OpenQuery) 3anycк 3anpoca SQL (RunSQL)
Выполнение другого приложения Запуск Приложения (RunApp)
Прерывание выполнения Отменить Событие (CancelEvent) Остановить ВсеМакросы (StopAllMacros) ОстановитьМакрос (StopMacro)
Выход из Microsoft Access Выход (Quit)
Импорт/экспорт Передача объектов Microsoft Access в другие приложения Вывести В Формате (OutputTo) ОтправитьОбъект (SendObject)
Преобразование формата данных Преобразовать БазуДанных (Transfer Database) ПереносБазыДанныхSQL (TransferSQLDat abase) Преобразовать ЭлектроннуюТаблицу (Transfer Spreadsheet) ПреобразоватьТекст (TransferText)
Работа с объектами Копирование, переименование и сохранение объекта КопироватьОбъект (CopyObject) Копировать Файл БазыДанных (CopyDatabase File) Переименовать (Rename) Сохранить (Save)
Прочие Вывод на экран или скрытие встроенной или специальной панели инструментов Подача звукового сигнала ПанельИнструментов (ShowToolbar) Сигнал (Веер)

Таблица 11.1. Макрокоманды Microsoft Access 2002

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

По сравнению с предыдущей версией Access, в Microsoft Access 2002 появились три новые макрокоманды:

ПереносБазыДанныхSQL (TransferSQLDatabase) - переносит базу данных Microsoft SQL Server 7.0 и выше на другой сервер;

КопироватьФайлБазыДанных(CopyDatabaseFile) - выполняет копирование текущей базы данных Microsoft SQL Server 7.0 и выше, присоединенной к проекту Access;

ОткрытьФункцию (OpenFunction) - выполняет функцию, определенную пользователем, в проекте Access. Эта функция- представляет собой запрос, который, используя входные параметры, возвращает результаты так же, как и хранимая процедура.

Использование макросов оправдано тем, что их легко создавать, и для этого не нужно изучать синтаксис языка программирования. Как будет показано в следующем разделе, для создания макроса требуется знать лишь основные приемы работы в Microsoft Access и Windows, такие как перетаскивание объектов из окна База данных (Database) в специальное окно - Конструктор макросов (Macro Design), выбор действия из списка и ввод выражений в качестве аргументов макрокоманды. Поэтому, если очень не хочется изучать синтаксис языка VBA или это представляется слишком трудным, смело применяйте макросы, и вы получите достаточно функциональное приложение.

Как уже говорилось выше, основное назначение макросов - это создание удобного интерфейса приложения: чтобы формы и отчеты открывались при нажатии кнопок в форме или на панели инструментов или же привычным выбором команды меню; чтобы при открытии приложения пользователь видел на экране не окно База данных (Database), наполненное множеством таблиц, запросов, форм и отчетов, а некую понятную форму, с помощью которой можно было бы сразу производить желаемые действия и т. д.

С помощью макросов можно создать удобные меню и панели инструментов для приложения, и чуть позже мы опишем, как это сделать.

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

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

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

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

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

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

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

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

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


Рис. 1.

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

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

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



Рис. 2.

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



Рис. 3.

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


Рис. 4.

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



Рис. 5.