В отчете должно быть зарезервировано место для заголовков каждой групп и примечания для вычисляемых полей. Чтобы добавить в отчет эти разделы, установите для свойств Заголовок группы и Примечание группы значение Да в окне сортировки и группировки. Когда вы это сделаете, Access добавит в отчет требуемые разделы.
Закройте окно сортировки и группировки. Вы можете улучшить внешний вид отчета, добавив линии (например, вдоль верхней границы заголовка) с помощью кнопки Линия на панели элементов. Высота области данных определяет расстояние между строками в отчете. Поскольку в отчете следует избегать излишнего пространства, уменьшите размер области данных почти до размера размещенных в ней полей.
Наконец, в правом нижнем углу нижнего колонтитула создайте свободное поле. В качестве значения его свойства Данные введите выражение =’’Page’’&[Page] & “of” &[Pages]. [Page] – это свойство отчета, содержащее номер текущей страницы. [Pages] – другое свойство отчета, содержащее общее число страниц.
Для просмотра результатов нажмите кнопку Предварительный просмотр на панели инструментов.
В Access можно определить макрос, выполняющий практически те же действия, которые можно реализовать нажатием клавиш на клавиатуре или с помощью мыши. Основным преимуществом макросов является то, что они могут выполняться в ответ на многие виды событий. Событием может быть изменение данных, открытие и закрытие формы или отчета, передача фокуса от одного элемента управления к другому. В макрос можно включить несколько макрокоманд и задать проверку условий таким образом, что в зависимости от значений данных в формах или отчетах будут выполняться различные действия. Вы можете использовать макросы для выполнения следующих действий:
· Для открытия/закрытия любой таблицы, запроса, формы, отчета в любом режиме.
· Для открытия отчета в режиме предварительного просмотра и непосредственного вывода на принтер.
· Для выполнения запроса на выборку или на изменение.
· Для выполнения действий в зависимости от значений в базе данных, форме или отчете. Макросы могут запускать другие макросы или процедуры VBA.
· Для установки значения любого элемента управления формы или отчета.
· Для применения фильтра, перехода к любой записи и поиска данных.
· Для определения специальной строки меню, замещающей стандартную. Вы можете сделать доступным или не доступным, снять галочку или поместить пункт специального меню, можете открыть или закрыть любую из стандартных или специальных панелей инструментов.
· Для выполнения любой команды любого меню Access.
· Для перемещения, изменения размеров, сворачивания или восстановления любого окна внутри рабочей области Access.
· Для вывода на экран информационных сообщений и подачи звуковых сигналов для привлечения внимания.
· Для переименования любого объекта БД, копирования выбранного объекта в текущую или другую БД, импортирования, экспортирования или связывания таблиц из других БД.
· Для запуска приложения, для обмена данными с приложением с помощью механизма DDE или буфера обмена.
Макросы особенно полезны для построения небольших персональных приложений. Изучение макросов – прекрасное введение в программирование в Access в целом.
Создание простого макроса
В окне БД перейдите на вкладку Макросы и нажмите кнопку Создать, чтобы открыть окно нового макроса. Верхняя часть окна используется для определения нового макроса, а нижняя предназначена для ввода значений аргументов макрокоманд, включенных в макрос. В верхней части присутствуют по крайней мере два столбца с заголовками Макрокоманда и Примечание. Вы можете увидеть все четыре столбца, нажав кнопки Имена макросов и Условия на панели инструментов. Обратите внимание на область в правой нижней части окна макроса, в которой выводится краткая справка. Содержание сообщения меняется в зависимости от положения курсора в верхней части окна макроса (для получения контекстной справки всегда можно нажать клавишу F1). В столбце Макрокоманда задается одна из более 49 макрокоманд, предоставляемых Access. Если вы щелкните в любой ячейке столбца Макрокоманда, то в правом углу появится кнопка со стрелкой вниз. Нажатие этой кнопки открывает список макрокоманд. Чтобы познакомится с работой окна макроса, выберите в списке макрокоманду Сообщение. Она используется для открытия монопольного окна диалога с сообщением. Это прекрасный способ для ввода в приложение разного рода предупреждающих или информационных сообщений без создания для этого специальной формы.
Пусть, например, сообщение представляет собой приветствие. В соответствующую ячейку столбца Примечание введите текст. В нем можно вводить дополнительные комментарии, размещая их на пустых строках, не содержащих макрокоманд. После выбора макрокоманды Access выведет в нижней части макроса ее аргументы. Значение аргумента Сообщение представляет собой текст, который будет выводиться в окне диалога. Аргумент Сигнал задает, будет ли звуковой сигнал сопровождать появление окна диалога. Аргумент Тип позволяет вставить в окно сообщения значок. В ячейку аргумента Заголовок вводится текст, который появится в заголовке окна диалога.
Перед запуском макрос необходимо сохранить. Выберите команду Файл->Сохранить. Access откроет окно диалога для сохранения. Введите имя и нажмите кнопку ОК.
Некоторые макросы могут быть запущены непосредственно из окна БД или окна макроса, поскольку они не зависят от элементов управления открытой формы или отчета. Если макрос зависит от формы или отчета, его надо связать с соответствующим событием и запускать при возникновении этого события. Перед запуском макроса неплохо проверить его работу, выполнив макрокоманды в пошаговом режиме. Чтобы начать пошаговую проверку, перейдите в окно БД, выделите имя макроса, который вы хотите протестировать и нажмите кнопку Конструктор. После открытия окна макроса нажмите кнопку По шагам на панели инструментов либо выберите команду Запуск->По шагам. Теперь после запуска макроса Access будет открывать окно диалога Пошаговое исполнение макроса перед выполнением каждого шага. В этом окне вы увидите имя макроса, название макрокоманды, условие ее выполнения и аргументы макрокоманды. Если во время выполнения приложения в каком-нибудь макросе встретится ошибка, то Access сначала выведет окно диалога, объясняющее ее. Затем вы увидите, похожее на Пошаговое исполнение макроса, окно диалога Ошибка макрокоманды с информацией о макрокоманде, вызвавшей ошибку. В этот момент можно нажать только кнопку Прервать и отредактировать макрос.
В большинстве форм, создаваемых для приложения, требуется применение значительного числа макрокоманд. Одни используются для редактирования полей, другие открывают отчеты, третьи реагируют на нажатие командных кнопок. Можно создать макросы для каждой отдельной макрокоманды, но в этом случае в одном приложении накопятся сотни макрокоманд. Существует более простой способ, при котором для каждой формы или отчета создается своя группа макросов. Возможен и подход, при котором группы макросов создаются для каждого типа операций. Например, можно создать группу макросов, содержащую все макрокоманды Открыть-Форму, используемые в БД. В группу можно включить несколько отдельных макросов. Каждому из них дается имя, которое заносится в столбец Имя макроса. Полное имя макроса состоит из двух частей, разделенных точкой. Слева от точки указывается имя группы макросов, а справа – имя макроса внутри группы.
Иногда необходимо, чтобы макрокоманды в макросе выполнялись только при определенных условиях. Например, вы хотите обновлять запись лишь в том случае, когда новые данные в элементах управления формы удовлетворяют условиям на значение или хотите выводить или скрывать определенные элементы управления в зависимости от значений других элементов управления. На вкладке Макросы выделите имя макроса и нажмите кнопку Конструктор, чтобы открыть окно макроса. Щелкните в столбце Условие на первой строке и нажмите клавиши Shift-F2, чтобы вывести на экран окно Область ввода. (Если столбец Условие не выводится, нажмите кнопку Условия на панели инструментов). При включении условия в макрос Access выполняет макрокоманду в этой строке только в том случае, если условное выражение имеет значение Истина. Ввод многоточия в столбце Условие в последующих строках позволяет распространить действие условия на ряд следующих макрокоманд. В этом случае Access вычисляет условное значение только один раз и выполняет группу макрокоманд, если условие, заданное для первой макрокоманды в этой группе, является истинным. Использование групп макросов позволяет легко находить и поддерживать нужные макросы. Вы можете создавать группы макросов не только по задачам, но и по функциям. Предположим, что имеется форма с рядом командных кнопок, каждой из которых назначен макрос, выполняющий определенную задачу. Вы можете собрать эти макросы в одну группу и дать ей имя, указывающее на связь с формой.
Макрокоманды подразделяются на несколько классов, сформированных по функциональному принципу:
· Открытие и закрытие таблиц, запросов, форм и отчетов.
· Печать данных.
· Выполнение запроса.
· Проверка истинности условий и управление выполнением макрокоманд.
· Установка значений.
· Поиск данных.
· Построение специального меню и выполнение команд меню.