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

Access

Исследовать возможности Access по созданию макросов

1. Введение

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

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

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

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

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

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

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

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

Однако использование макросов имеет и некоторые недостатки:

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

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

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

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

2. Основная часть.

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

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

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

Открыть окно Конструктор макросов для создания нового макроса можно двумя способами:

1. Раскройте список макросов в окне База данных , щелкнув ле­вой кнопкой мыши по ярлыку Макросы , и нажмите кнопку Создать в верхней части окна.

Рис. 1. Кнопка для создания макроса

2. Щелкните по стрелке вниз на кнопке Новый объект на па­нели инструментов База данных и выберите элемент Макрос.

https://pandia.ru/text/78/436/images/image003_65.jpg" width="395" height="256">

Рис. 3. Конструктор макросов и панель аргументов

Верхняя часть окна Конструктора - панель описаний - состоит из не­скольких столбцов. По умолчанию на этой панели выводится два столбца: Макрокоманда и Примечание. Панель описаний позво­ляет определить последовательность макрокоманд, из которых состоит макрос.

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

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

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

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

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

Существует еще один очень простой способ ввода макрокоманды. Допус­тим, нужно создать макрос, который должен открывать форму “Вычисление” в приложении “db 1 ”. Для этого в окне База данных нужно щелкнуть по Форме , затем, используя панель инструментов (способ 2), открыть Конструктор макросов и перетащить с помощью мыши Форму “Вычисление” в поле Макрокоманда окна Конструктора макроса.

Тогда в поле Макрокоманда автоматически появится макрокоманда ОткрытьФорму, а на панель аргументов автоматически заполняются поля: в поле Имя формы появляется имя формы “Вычисление”, в поле Режим – значение по умолчанию Форма , в поле Режим окна – значение Обычное. Остальные поля останется пустыми.

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

Рис. 4. Автоматическое создание макрокоманд путем перетаскивания объектов

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

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

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

Итак, созданная нами макрокоманда будет открывать форму “Вычисление” в режиме Только чтение и показывать в ней только менеджеров по продажам. Как уже было сказано ранее, макрос может содержать последовательность из нескольких макрокоманд. Поэтому в этом же макросе в следующей строке мы выберем макрокоманду Сообщение, которая после открытия формы будет отображать диалоговое окно с сооб­щением о том, какие клиенты представлены в форме. Для этого введем в поле Сообщение на панели аргументов текст сообщения, например

Установлен фильтр по Фамилиям, остальные поля можем оставить без изменения. Аргумент Сигнал определяет, будет ли вывод сообще­ния сопровождаться звуковым сигналом. Аргумент Тип определяет вид диалогового окна сообщения. Аргумент Заголовок позволяет за­дать текст, который будет выведен в заголовке окна сообщения.

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

Строго говоря, эту макрокоманду лучше поставить перед макрокомандой вывода сообщения на экран. Это легко исправить, поскольку макрокоманды легко меняются местами с помощью мыши. Чтобы поменять две последние макрокоманды местами, выделите последнюю строку, щелкнув левой кноп­кой мыши по области выделения строк (слева в окне Конструктора) и пере­тащите строку вверх. Горизонтальная линия показывает место нового поло­жения строки. Отпустите кнопку мыши, когда эта линия окажется над предпоследней строкой.

Теперь остается только сохранить созданный макрос. Для этого можно вы­брать в меню Файл команду Сохранить как или нажать кла­вишу . Появится окно сохранения макроса. Введите в поле ввода имя макроса, соблюдая правила именования объектов Access, например, менеджеры по продажам.

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

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

Чтобы создать группу макросов:

· Откройте Конструктора макросов.

Рис 5 . Открытие Конструктора макросов

· Нажмите кнопку Имена макросов на панели инструментов. На панели описаний в окне Конструктора макросов появится еще один столбец Имя макроса.

Рис 6. Дополнительный столбец “Имя Макроса

· В этот столбец введите имя первого макроса. Остальные поля данной строки лучше оставить пустыми - это облегчит перемещение и копиро­вание макрокоманд.

Рис 7. Ввод в столбец первого имени макроса

· Начиная со следующей строки, введите все макрокоманды макроса и со­ответствующие аргументы для каждой макрокоманды.

Рис 8. Ввод всех макрокоманд и аргументы для каждой макрокоманды в макрос

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

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

Для запуска одного из макросов группы используется полное имя для ссылки на макрос. Полное имя макроса формируется таким образом: имяГрупы. имяМакроса.

2.3. Запуск макроса из окна Конструктора макроса

Этот способ применения для тестирования только что созданного или исправленного макроса. Если макрос в окне Конструктора макроса один, то для его запуска нужно просто нажать на кнопку Запуск https://pandia.ru/text/78/436/images/image010_13.jpg" width="623" height="362 src=">

Рис 9. Кнопка запуска макроса на панели инструментов

Теперь рассмотрим создание специальной панели инструментов и размеще­ние на ней кнопки вызова макроса.

· Щелкните по ярлыку Макросы на панели объектов в окне База данных и выделите нужный макрос.

· Выберите команду Сервис, Макрос, Создать панель инструментов из мак­роса . На экране появляется пустая панель инструментов.

https://pandia.ru/text/78/436/images/image012_6.jpg" width="63" height="84">

Рис 11. Значок макроса

Кнопка получает такое же название, как имя макроса, для которого она создана.

Тот же самый результат можно получить другим способом:

· Откройте окно Настройка , щелкнув правой кнопкой мыши по панели инструментов.

· В появившемся диалоговом окне раскройте вкладку Панели инструментов и нажмите кнопку Создать.

Рис 12. Диалоговое окно “Настройка ” с вкладкой “Панель Инструментов ”, кнопка “Создать

· В появившемся диалоговом окне введите имя новой панели инструмен­тов мои макросы и нажмите кнопку ОК. Появится пустая панель инстру­ментов.

Рис 13. Ввод имени новой Панели Инструментов

· Выберите вкладку Команды .

· Выберите в списке Категории значение Все макросы , а в списке Команды найдите макрос «Open».

· Перетащите этот макрос с помощью мыши на пустую панель инструмен­тов.

https://pandia.ru/text/78/436/images/image016_4.jpg" width="176" height="252 src=">

Рис 15. Контекстное меню только что созданной кнопки

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

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

https://pandia.ru/text/78/436/images/image018_4.jpg" width="72" height="55 src=">

Рис 17. Выбранный рисунок на кнопке для изменения

· Нажмите кнопку Изменить выделенный объект в диа­логовом окне Настройка .

· Выберите в контекстном меню команду Вставить значок для кнопки .

https://pandia.ru/text/78/436/images/image020_3.jpg" width="291" height="312">

Рис 19. Свойство кнопки “Open

· Введите желаемый текст в поле Всплывающая подсказка .

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

Если нужно создать панель инструментов для вызова нескольких макросов, мы рекомендуем объединить эти макросы в одну группу (создание группы макросов было описано в предыдущем разделе). Создание такой панели ин­струментов можно осуществить с помощью одной команды Сервис, Макрос, Создать панель инструментов из макроса. Попробуйте сделать это для одной из групп макросов в базе данных «db1», например, «Open». С помощью указан­ной команды создается панель инструментов с кнопками для вызова каж­дого макроса из группы, причем на кнопках отображаются имена соответст­вующих макросов. Новая панель инструментов получает такое же имя, как имя группы макросов. При желании можно заменить текст на кнопках значками, как это было описано выше.

2.7. Связывание макросов с событиями .

В базе данных хранится информация о состоянии её объектов. Любое изменение состояния формы или отчета называется событием. Каждый из этих объектов имеет свой набор событий.

С событиями удобно связывать макросы. Попробуем связать созданный нами макрос Сообщение с открытием базы данных:

· Маркируйте макрос Размещение на экране в окне базы данных.

· Выберите в меню Павка команду Переименовать и присвойте макросу Сообщение новое имя AutoExec (макрос с таким именем автоматически выполняется при загрузке базы данных). Вы можете произвольным образом использовать строчные и прописные литеры.

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

· Чтобы проверить работоспособность макроса, закройте, а затем откройте базу данных.

Если имя AutoExec присвоено макрогруппе, то при открытии базы данных будет выполнен только первый макрос этой группы! Чтобы при загрузке базы последовательно приводились в исполнение несколько макросов, введите в макрос AutoExec макрокоманду ЗапускМакроса, что позволит выполнить макрос с произвольным именем (имя задается аргументом) и вернуться к следующей за ЗапускМакроса макрокоманде в макросе AutoExec .

Макрос AutoExec не выполняется, если перед открытием базы данных нажать и удерживать клавишу .

2.8. Связывание макроса с кнопкой

Целесообразно создавать элементы управления (например, кнопки) для вызова макросов. Это значительно упрощает и ускоряет доступ к ним. Удобным местом для размещения таких элементов является заголовок или примечание формы.

В качестве упражнения попробуем связать с кнопкой макрос, который маркирует активную запись формы и копирует ее в буфер обмена:

· Создайте макрос Копировать, состоящий из следующих макрокоманд:

Макрокоманда Аргумент

ВыполнитьКоманду Select Record

ВыполнитьКоманду Copy

· Сохраните макрос и закройте его окно.

· Откройте форму Переключатель и активизируйте режим конструктора.

· Вызовите команду Слева направо меню Окно.

· Маркируйте макрос Копирование записи в окне базы данных и перетащите его в область заголовка проекта формы.

Рис 20. Перетаскивание макроса из окна базы данных в область заголовка проекта формы

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

Имя макроса автоматически появляется внутри кнопки. Если оно слиш­ком длинное, размер кнопки следует увеличить. Чтобы на кнопке была видна вся надпись, можно уменьшить размер шрифта или создать надпись, отли­чающуюся от имени макрокоманды. Редактирование надписи выполняется после щелчка на кнопке. Для выхода из режима редактирования достаточно щелкнуть вне кнопки.

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

Рис 21. Окно свойств кнопки

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

2.9. Вызов приложений и управление ими

С помощью макроса можно запустить из Access 2000 приложения Microsoft Office 2000, а также программы, работающие под управлением Windows 98, Windows NT или DOS (например, чтобы выполнить некоторые вычисления с помощью Excel 2000 или сделать небольшие заметки посредством редакторов Notepad и Word 2000). Вызов выполняется одинаково во всех случаях и заключается главным образом в указании имени запускаемой программы. Макрос для вызова прикладной программы можно связать с кнопкой формы, ускорив таким образом доступ к нужному приложению:

· Создайте новый макрос. В первой строке введите макрокоманду ЗапускПриложения.

Рис 22. Создание макрокоманды “ЗапускПриложения

· В качестве значения аргумента Командная строка введите имя запускае­мой программы, например WinWord.

Рис 23. Командная строка с аргументом запускаемой программы WinWord

· Сохраните макрос под именем Заметки.

Рис 24. Ввод имени макроса

· Откройте форму Переключатель в режиме конструктора и перетащите макрос из окна базы данных в область заголовка формы.

https://pandia.ru/text/78/436/images/image027_2.jpg" width="600 height=409" height="409">

Рис 26. Окно текстового редактора Word

При вызове программы всегда приводится полная спецификация ее файла. При этом вводить расширение не следует. Каталог, в котором хранится файл, необходимо указывать только в том случае, если он не задан командой PATH в файле AUTOEXEC. BAT. Например:

C:\Program Files\NC\nc

Как правило, при вызове прикладных программ, входящих в комплект поставки Windows 98, папка Windows указывается в команде PATH. Поэтому имя редактора в данном макросе приведено без указания каталога.

Следите за тем, чтобы после окончания сеанса работы редактор был закрыт корректно.

2.10.

Запуская прикладные программы с помощью макрокоманды ЗапускПриложения, можно указывать ключи, которые обычно вводятся в командной строке после имени программы при запуске с уровня DOS. Эти ключи служат для задания режима работы прикладной программы. Если, к примеру, из макроса запускается редактор Word 2000, то параметр /t имя документа приме­няется для загрузки документа с указанным именем, который используется в качестве шаблона. Ключ / n указывается при запуске Word 2000 без открытия нового документа. Способ указания ключей в аргументе Командная строка такой же, как в командной строке DOS:

C:\Program Files\Microsoft Office\0ffice\winword. exe /n

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

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

· Перейдите в окно Word 2000 и вставьте в первую строку документа поля Date и Time .

Рис 27. Ввод даты и времени в текстовый редактор Word

· Сохраните документ Word 2000 под именем Заметки в папке Мои доку­менты, не указывая расширение doc, и закройте окно Word 2000.

· Маркируйте макрос Заметки в окне базы данных и активизируйте режим конструктора.

Рис 28. Режим Конструктора для макроса “Заметки”

· Присвойте аргументу Командная строка значение WinWord Заметки и сохраните макрос.

Рис 29. Ввод аргумента в Командную строку WinWord Заметки

При каждом новом вызове редактора в документ заметок вводятся

системная дата и системное время - таким образом, содержимое автомати­чески протоколируется.

Заключение

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

Задание

1. Введение

2. Основная часть

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

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

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

2.4. Запуск макроса из окна базы данных

2.5. Запуск макроса с помощью кнопки на панели инструментов

2.6. Запрос в режиме таблицы

2.7. Связывание макросов с событиями

2.8. Связывание макроса с кнопкой

2.9. Вызов приложений и управление ими

2.10. Запуск прикладных программ с параметрами

3. Заключение

4. Приложение

5. Список литературы

Список литературы

1. И. Харитонова, В. Михеева, Microsoft Access 2000 в подлиннике.

2. В. Пасько, Для пользователей ПК русифицированная версия Access 97.

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

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

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

Предположим, требуется запустить отчет непосредственно из формы ввода данных. Можно добавить в форму кнопку и затем создать макрос, который будет запускать отчет. Макрос может быть изолированным (отдельный объект в базе данных), который затем связывается с событием OnClick для кнопки, или же он может быть внедрен непосредственно в событие кнопки OnClick - это новая возможность в Office Access 2007. В любом случае, при нажатии кнопки выполняется макрос, который запускает отчет.

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

Чтобы отобразить построитель макросов

Общие сведения о макросах

Термин «макрос» часто используется по отношению к изолированным макрообъектам (то есть объектам, отображаемым в области переходов в разделе Макросы ), но на самом деле, один макрообъект может содержать несколько макросов. В этом случае он называется группой макросов . Группа макросов отображается в панели переходов как один объект, хотя в действительности содержит несколько макросов. Разумеется, каждый макрос может быть создан как отдельный макрообъект, но зачастую имеет смысл сгруппировать несколько связанных макросов в один макрообъект. Имя в столбце Имя макроса идентифицирует каждый макрос.

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

Имена макросов

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

Аргументы

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

В построителе макросов в Office Access 2007 имеется столбец Аргументы , позволяющий просматривать (но не изменять) аргументы макрокоманды в строке макрокоманды. Так легче читать макрос, так как уже не нужно выбирать каждую макрокоманду, чтобы увидеть ее аргументы. Чтобы отобразить столбец Аргументы , нажмите кнопку Аргументы в группе Отображение на вкладке Конструктор .

Условия

Условие определяет требования, которые должны быть соблюдены, для того чтобы была выполнена макрокоманда. Можно использовать любое, результатом которого являются значения «Истина» или «Ложь» либо «Да» или «Нет». Если выражение вычисляется как «Ложь», «Нет» или 0 (нуль), макрокоманда не будет выполнена. При любом другом значении выражения макрокоманда будет выполнена.

Одно условие может управлять несколькими макрокомандами, если в столбце Условие ввести многоточие (...) для каждой следующей по порядку макрокоманды, к которой будет применяться данное условие. Если выражение вычисляется как «Ложь», «Нет» или 0 (нуль), ни одна из макрокоманд не будет выполнена. При любом другом значении выражения будут выполнены все макрокоманды.

Для отображения в построителе макросов столбца Условия на вкладке Конструктор в группе Отображение нажмите кнопку Условия

Выражение, используемое как условие Условие, при котором выполняется макрокоманда
[Город]="Париж" Поле «Город» в форме, из которой запускается макрос, имеет значение «Париж».
DCount("[КодЗаказа]", "Заказы")>35 Количество записей в поле «КодЗаказа» таблицы «Заказы» превышает 35.
DCount("*", "Заказано", "[КодЗаказа]=Forms![КодЗаказа]![КодЗаказа]")>3 В таблице «Заказано» содержится более 3 записей, у которых поле «КодЗаказа» в таблице соответствует полю «КодЗаказа» в форме «КодЗаказа».
[ДатаИсполнения] Between #2-фев-2006# And #2-мар-2006# Значение поля «ДатаИсполнения» в форме, из которой запускается макрос, попадает в интервал со 2 февраля 2006 по 2 марта 2006 г.
Forms![Товары]![На складе]<5 Значение поля «На складе» в форме «Товары» меньше 5.
IsNull([Имя]) Поле «Имя» в форме, из которой запускается макрос, имеет значение (не заполнено). Это выражение эквивалентно следующему: [Имя] Is Null.
[Страна]="UK" And Forms![СуммыПродаж]![ВсегоЗаказов]>100 Поле «Страна» в форме, из которой запускается макрос, имеет значение «Великобритания», и значение поля «ВсегоЗаказов» в форме «СуммыПродаж» больше 100.
[Страна] In ("Франция", "Италия", "Испания") And Len([Индекс])<>5 Поле «Страна» в форме, из которой запускается макрос, имеет значение «Франция», «Италия» или «Испания», и почтовый индекс содержит не 5 символов.
MsgBox("Подтвердить изменения?",1)=1 Нажата кнопка ОК в диалоговом окне, в котором функция MsgBox отображает текст «Подтвердить изменения?». Если в диалоговом окне нажата кнопка Отмена эта макрокоманда будет пропущена.
!=2 Временная переменная, которая используется для хранения результата окна сообщения, равна 2 (vbCancel=2).

Совет. Чтобы приложение Access временно пропускало макрокоманду, введите в качестве условия значение «Ложь». Временный пропуск макрокоманды может применяться при поиске ошибок в макросе.

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

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

Новые возможности макросов в Office Access 2007

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

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

В Office Access 2007 макрос или группа макросов могут быть заключены в объект макроса (называемый иногда изолированным макросом), или макрос может быть внедрен в любое свойство события в форме, отчете или элементе управления. Внедренные макросы становятся частью объекта или элемента управления, в которые они внедрены. Изолированные макросы отображаются в области переходов в разделе Макросы , в отличие от внедренных.

Функции построителя макросов

Построитель макросов служит для создания и изменения макросов. Он открывается следующим образом.

Приложение Access откроет построитель макросов.

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

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

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

Группа Команда Описание
Сервис Выполнить Выполнение макрокоманд, перечисленных в макросе.
Пошагово Включение режима пошагового выполнения макроса. При запуске макроса в этом режиме происходит поочередное выполнение каждой макрокоманды. После завершения каждой макрокоманды отображается диалоговое окно Пошаговое исполнение макроса . Для перехода к следующей макрокоманде нажмите в этом диалоговом окне кнопку Шаг . Нажмите кнопку Остановить все макросы , чтобы остановить исполнение этого и всех остальных макросов. Нажмите кнопку Далее , чтобы выйти из пошагового режима и выполнить остальные макрокоманды без остановки.
Построитель Эта кнопка активируется при вводе аргумента макрокоманды, содержащего выражение. Щелкните кнопку Построитель , чтобы открыть диалоговое окно Построитель выражений , в котором можно создать выражение.
Строки Вставить строки Добавление одной или нескольких пустых строк макрокоманд над выбранными строками.
Удалить строки Удаление выбранных строк макрокоманд.
Отображение Отобразить все макрокоманды

Отображение большего или меньшего количества макрокоманд в раскрывающемся списке Макрокоманда .

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

Совет. Если кнопка Отобразить все макрокоманды выделена, снимите выделение, нажав эту кнопку.

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

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

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

  1. Добавьте в макрос макрокоманду.
  • В построителе макросов щелкните первую пустую ячейку в столбце Макрокоманда .
  • Введите нужную макрокоманду или щелкните стрелку, чтобы раскрыть и выбрать из него нужную макрокоманду.
  • В разделе Аргументы макрокоманды при необходимости укажите аргументы для макрокоманды. Щелкните поле аргумента, чтобы увидеть его краткое описание справа от аргумента.
  • Для, значения которых служат именами, можно задать значение, перетащив объект из области переходов в поле аргумента Имя объекта .
  • Можно также создать макрокоманду, перетащив объект базы данных из области переходов в пустую строку в построителе макросов. При перетаскивании таблицы, запроса, формы, отчета или модуля в построитель макросов добавляется макрокоманда, открывающую таблицу, запрос, форму или отчет. При перетаскивании макроса в построитель макросов добавляется макрокоманда, запускающая макрос.
  1. Чтобы добавить в макрос следующую макрокоманду, перейдите в другую и повторите шаг 2. Приложение Access выполняет макрокоманды в том порядке, в котором они перечислены.

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

Для группировки нескольких связанных макросов в один объект макроса можно создать группу макросов.

Будет открыт построитель макросов.

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

  1. В столбце Имя макроса введите имя первого макроса из группы.
  2. Добавьте макрокоманды для исполнения в первом макросе.
  • В столбце Макрокоманда щелкните стрелку, чтобы раскрыть список макрокоманд.
  • Выберите макрокоманду, которую требуется добавить.
  • В разделе Аргументы макрокоманды укажите аргументы макрокоманды, если они нужны. Щелкните поле аргумента, чтобы увидеть его краткое описание справа от аргумента.
  • Для аргументов макрокоманд, параметры которых служат именами объектов базы данных, можно задать аргумент, перетащив объект из области переходов в поле аргумента Имя объекта .
  • Можно также создать макрокоманду, перетащив объект базы данных из области переходов в пустую строку в построителе макросов. При перетаскивании таблицы, запроса, формы, отчета или модуля в построитель макросов добавляется макрокоманда, открывающая таблицу, запрос, форму или отчет. При перетаскивании макроса в построитель макросов добавляется макрокоманда, запускающая макрос.
  • При необходимости введите примечания к макрокоманде.
  1. Перейдите к следующей пустой строке в столбце Имя макроса и введите имя очередного макроса из группы.
  2. Добавьте макрокоманды для выполнения в этом макросе.
  3. Повторите действия 5 и 6 для каждого макроса в группе.

Примечания

ИмяГруппыМакросов.ИмяМакроса

Например, название «Кнопки.Товары» относится к макросу «Товары» в группе макросов «Кнопки». В списке макросов, например, в списке аргументов «Имя макроса» для макрокоманды ВыполнитьМакрос , макрос «Товары» будет отображаться как «Кнопки.Товары».

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

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

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

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

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

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

Пример. Внедрение макроса в событие отчета «Отсутствие данных»

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

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

Построитель макросов будет закрыт, а для события Отсутствие данных будет выведено сообщение [Внедренный макрос] .

  1. Сохраните и закройте отчет.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Макросы в СУБД Microsoft Access

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

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

Сущность макросов

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

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

Макрос- такой же объект Access , как таблица, запрос, форма и отчет. Он создается для автоматического выполнения определенных действий или совокупности действий. Выполнение прикладной задачи можно представить как результат последовательного выполнения ряда действий, каждое из которых может быть записано соответствующей командой на языках Visual Basis или VBA . Кроме того, с помощью макроса можно имитировать выбор команды меню или перемещения мыши.

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

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

Когда следует использовать макрос

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

    Связывание и совместный запуск запросов и отчетов.

    Одновременное открытие нескольких форм и /или отчетов.

    Контроль ввода данных при заполнении форм.

    Перемещение данных между таблицами.

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

Окно макросов

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

    В окне базы данных выберите вкладку Макросы .

    Щелкните на кнопке Создать .

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

При открытии нового окна макросов в верхней части отображается два столбца: Макрокоманда и Примечание. При выборе команды Вид – Имена макросов или Вид – Условия появляются два дополнительных столбца – Имя макроса и Условие.

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

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

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

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

1. Откройте новое окно макросов.

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

3. Выберите из списка макрокоманду Песочные Часы.

4. Щелкните на ячейке комментариев напротив введенной макрокоманды Песочные часы.

5. Введите текст Показывать песочные часы во время выполнения макроса.

6. Щелкните на следующей ячейке в столбце Макрокоманда.

7. Выберите из списка макрокоманду Открыть Форму.

8. Щелкните на ячейке Имя формы в области Аргументы макрокоманды.

9. Выберите форму Add a Customer and Pets.

10. Щелкните в столбце Примечания напротив введенной макрокоманды Открыть Форму.

11. Введите Открыть форму Add a Customer and Pets.

12. Щелкните на следующей ячейке в столбце Макрокоманда.

13. Выберите из списка макрокоманду Открыть форму.

14. Щелкните на ячейке Имя формы в области аргументы макрокоманды.

15. Выберите форму Adding Visit Details.

16. Щелкните в столбце Примечания напротив введенной

17. Введите Открыть форму

18. Щелкните на следующей ячейке в столбце Макрокоманда.

19. Выберите из списка макрокоманду Сигнал.

Изменение порядка расположения макрокоманд в макросе

При работе с макросами, состоящими из нескольких макрокоманд, вам может понадобиться внести изменения в последовательность выполнения отдельных макрокоманд. Например, вы можете решить, что в макросе, который создали ранее, команда сигнал должна стоять в начале, а не в конце макроса. Для изменения порядка макрокоманд в макросе выполните перечисленные ниже действия.

    Выделите макрокоманду, щелкнув на области выделения строки слева от имени макрокоманды.

    Снова щелкните на выделенной строке и перетащите ее в верхнюю строку макроса.

Сохранение макроса

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

    Выберите из меню окна макросов команду Файл-Сохранить или щелкните на кнопке Сохранить панели инструментов.

    Если макрос ранее не сохранялся, вам следует ввести его имя в диалоговом окне Сохранение, а затем нажать клавишу Enter или щелкните ОК.

Изменение существующего макроса

После создания макроса можно изменить. Для этого выполните перечисленные ниже действия.

    В окне базы данных выберите вкладку Макросы.

    Выделите макрос, который вы хотите изменить.

    Щелкните на кнопке Конструктор.

Копирование макросов

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

    Выберите вкладку Макросы в окне базы данных.

    Выделите макрос, который вы хотите копировать.

    Нажмите комбинацию клавиш Ctrl + C или выберите Правка – копировать для копирования макроса в буфер обмена.

    Нажмите Ctrl + V или выберите команду Правка – Вставить для вставки макроса из буфера обмена.

    В диалоговом окне Вставка введите имя нового макроса.

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

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

    Выберите вкладку макросы в окне базы данных.

    Выделите макрос, который вы хотите переименовать.

    Выберите команду Правка – Переименовать или щелкните правой кнопкой мыши и в появившемся меню выберите команду Переименовать.

    Введите новое имя.

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

После создания макрос можно запустить из:

    Окна макросов,

    Окна базы данных,

    Других окон базы данных,

    Других макросов.

Запуск макроса из окна макросов

Макрос можно запустить непосредственно из окна макросов, щелкнув на кнопке запуск или используя команду Запуск.

Запуск макросов из окна базы данных

Для запуска макросов из окна базы данных выполните следующие действия.

    выберите вкладку макросы в окне базы данных.

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

    Щелкните дважды на имени этого макроса или щелкните на кнопке Запуск.