Access изменение поля записи макросов. Использование макросов в базе данных Microsoft Access, Исследовать возможности Access по созданию макросов. Функции макросов в Access

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

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

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

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

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

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

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

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

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

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

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

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


Рис. 1.

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



Рис. 2.

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



Рис. 3.

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



Рис. 4.

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



Рис. 5.

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



Рис. 6.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Задание

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

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

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

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

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

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

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

Похожие публикации