Учебная база данных «Борей»

Учебная база данных «Борей» содержит сведения, позволяющие тренироваться в работе с объектами базы данных (таблицами, запросами, формами, отчетами, макросами и модулями), что облегчает понимание основных свойств Microsoft Access, которые можно использовать в собственных базах данных. База данных «Борей» помогает в освоении структуры реляционных баз данных и принципов взаимодействия их объектов, поясняя процессы ввода, хранения и печати данных, а также манипулирования ими.

Открытие учебной базы данных «Борей»

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

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

Примечание.   Для получения справки по Microsoft Access щелкните помощника Office или выберите В меню ? команду Справка по Microsoft Access.

Объекты

•	Таблицы

•	Запросы

•	Формы

•	Отчеты


Таблицы в базе данных «Борей»

В каждой таблице базы данных «Борей» содержатся сведения различных типов. Например в таблице «Сотрудники» хранятся сведения о сотрудниках, распределенные по разным полям. Для хранения каждого компонента данных отведено специальное поле, например, «Имя». Набор всех возможных данных об одном сотруднике составляет запись, например, данные из полей «Имя», «Фамилия», «Адрес», «Город» и т.д.

Для каждого поля задан тип хранимых в нем сведений. Так поле «Имя» имеет текстовый тип данных, потому что в нем сохраняются имена, а поле «ДатаНайма» тип «Дата/Время», так как содержит информацию о дате приема сотрудника.

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

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

Таблица «Поставщики»

Тип данных	Применение	Поле
Счетчик	Уникальный номер, автоматически вставляемый при добавлении записи.	КодПоставщика
Текст	Текст, комбинация текста и чисел (например адреса), или числа (например номера телефонов).	Название, Адрес, Телефон и др.
Гиперссылка	Текст или сохраненная в текстовом виде комбинация текста и чисел, используемые в качестве адреса гиперссылки.	ОсновнаяСтраница
Таблица «Сотрудники»

Тип данных	Применение	Поле
Дата/Время	Даты и время.	ДатаРождения
Поле Memo	Длинный текст и числа, например примечания или описания.	Примечания
Подстановка	Текст или комбинация текста и чисел в подстановочном поле. При вводе данных допустим выбор значения из поля со списком (состоящего из указанного списка).	Обращение
Числовой (Подстановка)	Число в подстановочном поле. При вводе данных допустим выбор значения из поля со списком (состоящего из значений той же таблицы).	Подчиняется
Поле объекта OLE	Объект (например документ Microsoft Word или рисунок, созданный другой программой), внедренный в таблицу при помощи протокола OLE.	Фотография
Таблица Товары

Тип данных	Применение	Поле
Денежный	Денежные значения.	Цена
Логический	Значения Да/Нет, Правда/Ложь, Включено/Выключено.	Поставки Прекращены
Числовой	Числовые данные, используемые для проведения математических расчетов.	НаСкладе
Числовой (Подстановка)	Число в подстановочном поле. При вводе данных допустим выбор значения из поля со списком (состоящего из значений другой таблицы).	КодТипа
Совет.   Структура и связи всех таблиц базы данных «Борей» отображаются в окне Схема данных. (Для его вызова необходимо выбрать из меню Сервис команду Схема данных).


Запросы в базе данных «Борей»

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

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

Ниже рассматриваются следующие запросы

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

•	Запросы для вычисления сумм

•	Запросы на объединение и перекрестные запросы


Запросы на объединение и перекрестные запросы

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

Запрос на объединение

Запрос «Клиенты и поставщики по городам» основан на таблице «Клиенты» и «Поставщики». В запросе данные из соответствующих полей из двух этих таблиц объединяются в одном поле. В результате этого объединения поле «Название» запроса содержит названия компаний-клиентов и компаний-поставщиков. Объединенные сведения содержатся также в полях «ОбращатьсяК» и «Город».

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

Перекрестный запрос

Запрос «Квартальные обороты по товарам» основан на таблицах «Заказы», «Заказано» и «Товары». Для каждого товара запрос содержит сведения о заказавшем его клиенте, об объеме заказа и от том, в каком квартале этот заказ был сделан.

В следующих полях запроса используются выражения:

•	В поле «Выражение1» для получения значения квартала заказа из поля «ДатаРазмещения» используется функция DatePart.

•	В поле «ГодЗаказа» для получения из поля «ДатаРазмещения» года заказа используется функция Year.

•	В поле «СуммаПоТовару» для получения общей суммы заказанных товаров используется функция Sum, а для округления цены до существующих единиц – функция CCur.

•	В ячейке Условие отбора поля «ДатаРазмещения» для получения записей, относящихся только к 1995 году, используется оператор Between…And.


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

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

Задание неизменных условий

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

Запрос «Итоги продаж по объему» возвращает только записи для заказов с суммой счета более 2 500 000 р., размещенных в 1995 году. Для задания этого условия в ячейке Условие отбора для поля «ОбъемПродаж» задано условие >2500000,а для поля «ДатаРазмещения» условие Between #1/1/95# And #12/31/95#.

Приглашение на ввод условий при каждом запуске запроса

Базовым запросом отчета «Продажи по сотрудникам и странам» является запрос «Продажи по сотрудникам и странам». При каждом открытии этого запроса в режиме таблицы и при каждом открытии отчета в режиме просмотра на экран выводится приглашение ввести начальную и конечную даты.

В ячейке Условие отбора для поля «ДатаИсполнения» содержится следующее условие:

Between [Начальная дата] And [Конечная дата]

Прототипы [Начальная дата] и [Конечная дата] имеют тип «Дата/Время» и заданы в диалоговом окне Параметры запроса. Для его вызова необходимо в режиме конструктора выбрать в меню Запрос команду Параметры.

Получение для запроса условий отбора из специального диалогового окна

Запрос «Продажи по годам» является базовым для одноименного отчета и для отчета «Подчиненный для продаж по годам». В качестве значений для условия отбора используются значения полей «НачальнаяДата» и «КонечнаяДата» формы «Продажи по годам», которая открывается в процедуре обработки события отчета Открытие при его просмотре или выводе на печать.

Для указания на эти поля формы используется ячейка Условие отбора поля «ДатаИсполнения»:

Is Not Null And Between [Forms]![Продажи по годам]![НачальнаяДата] And [Forms]![Продажи по годам]![КонечнаяДата]

Выражения [Forms]![Продажи по годам]![НачальнаяДата] и [Forms]![Продажи по годам]![КонечнаяДата] имеют тип «Дата/Время» и заданы в диалоговом окне Параметры запроса. Для его вызова необходимо в режиме конструктора выбрать в меню Запрос команду Параметры.

Задание условий отбора в инструкции SQL SELECT

В основе запроса «Товары с ценой выше средней» лежит таблица «Товары». В качестве условия отбора для поля «Цена» здесь используется инструкция SELECT языка SQL. Такая инструкция, помещенная в поле Условие отбора, называется подчиненным запросом.

Задание условий отбора при помощи свойства «Набор значений» (TopValues)

В основе запроса «Десять самых дорогих товаров» лежит таблица «Товары». Для свойства Набор значений (TopValues) данного запроса задано значение 10 и поле «Цена» сортируется по убыванию. Эти условия ограничивают число получаемых записей до 10, соответствующих товарам с максимальными ценами.


Запросы для вычисления итоговых значений

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

Вычисление итоговых значений для каждой записи

В основе запроса «Сведения о заказах» лежат таблицы «Заказано» и «Товары». В поле «ОтпускнаяЦена» для вычисления отпускной цены товара используются арифметические операции, а для округления цены до существующих единиц – функция CCur.

Вычисление итоговых значений для нескольких записей

В основе итогового запроса «Промежуточная сумма заказа», объединяющего записи по коду заказа, лежит таблица «Заказано». В поле «ПромежуточнаяСумма», вычисляющем общую сумму каждого заказа, для расчета отпускных цен товаров используются арифметические операции, для их суммирования – функция Sum, а для округления цен до существующих единиц – функция CCur.

Использование результатов одного запроса в расчетах другого

В некоторых случаях для группировки и суммирования записей удобно использовать два различных запроса. Так в запросе «Продажи товаров в 1995» вычисляется сумма продаж каждого товара, а в запрос «Продажи по типам в 1995» полученное значение используется для расчета объемов продаж товаров каждого типа.

В основе запроса «Продажи товаров в 1995», вычисляющего суммы продаж каждого товара, лежат четыре таблицы: «Типы», «Товары», «Заказы» и «Заказано». В поле «ПродажиТоваров» для расчета отпускных цен товаров используются арифметические операции, для суммирования этих цен для всех товаров заказа – функция Sum, а для округления цен до существующих единиц – функция CCur.

Запрос «Продажи по типам в 1995» основан на данных запроса «Продажи товаров в 1995». В нем группируются записи по полю «Категория» и вычисляется сумма продаж товаров каждой из этих категорий. Для этого в ячейку Групповая операция поля «ПродажиПоТипам» бланка конструктора запроса вводится функция Sum.


Формы учебной базы данных «Борей»

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

Совет.   Для ознакомления со структурой формы необходимо открыть ее в режиме конструктора.

Ниже рассматриваются следующие формы

•	«Телефоны клиентов».   Позволяет просмотреть телефоны фирм, названия которых начинаются с указанной буквы, и вывести полученный список на печать.

•	«Сотрудники» и «Сотрудники (с переводом страницы)».   Двухстраничная форма, позволяющая добавлять или изменять сведения о сотрудниках.

•	«Заказы» и «Подчиненная форма заказов».   Добавление, изменение и удаление заказов, а также сведений о них.

•	«Наклейки для клиентов», «Отчеты о продажах» и «Главная кнопочная форма».   Используются для предварительного просмотра или печати отчетов. Для открытия других объектов базы данных необходимо использовать панель управления.

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


Форма «Телефоны клиентов»

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

Используемые в данной форме макросы хранятся в группах макросов «Телефоны клиентов» и «Пример макроса Autokeys».

Примечание.   Для автоматической печати отчета при нажатии клавиш CTRL+P без открытия диалогового окна Печать необходимо переименовать макрос «Пример макроса Autokeys» просто в «Autokeys» и повторно открыть приложение «Борей».

Форма «Телефоны клиентов» обладает следующими особенностями:

•	Для отбора записей служат кнопки из группы «ОтборКлиентов» в примечании формы, использующие присоединенный к свойству группы После обновления (AfterUpdate) макрос «Кнопки» (из группы макросов «Телефоны клиентов»).

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

•	В верхнем колонтитуле расположены подписи для названия и заголовков столбцов.

•	В нижнем колонтитуле расположены поля номера страницы и даты печати.

•	Для печати записей, отображенных в форме, используется комбинация клавиш CTRL+P. (Данная комбинация назначена макросу «Печать» группы «Телефоны клиентов» макросом ^p группы «Пример макроса Autokeys»).

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

Область формы	Свойство	Значение
Форма	Полосы прокрутки (ScrollBars)	Только по вертикали
	Область выделения (RecordSelectors)	Нет
Заголовок формы, примечание формы	Режим вывода (DisplayWhen)	Только на экран
Область данных	Цвет фона (Background)	16777215 (Белый)
Все поля и подписи	Тип границы (BorderStyle)	Отсутствует


Формы «Сотрудники» и «Сотрудники (с переводом страницы)»

Формы «Сотрудники» и «Сотрудники (с переводом страницы)» демонстрируют два способа разделения данных: по вкладкам и по страницам.

Форма «Сотрудники»

Форма «Сотрудники», в которой данные содержатся на вкладках, позволяет добавлять, изменять и удалять личные и служебные данные о сотрудниках. Данная форма связана с одноименной таблицей.

Форма «Сотрудники» обладает следующими особенностями.

•	В поле «ПолноеИмя» в заголовке формы отображаются значения полей «Имя» и «Фамилия». Данное поле выводится на экран для обеих вкладок, так как расположено в заголовке формы.

•	После добавления или изменения записи процедура обработки события свойства формы После обновления (AfterUpdate) обновляет поле со списком «Подчиняется».

•	Элемент управления набор вкладок в области данных служит для отделения служебных данных о сотруднике от его личных данных путем размещения их на различных вкладках.

•	Для помещения фокуса на текущую вкладку для свойства Цикл табуляции (Cycle) установлено значение Текущая страница. Чтобы перейти на другую страницу, необходимо просто щелкнуть ее вкладку.

Форма «Сотрудники (с переводом страницы)»

Форма «Сотрудники (с переводом страницы)» содержит те же сведения, что и форма «Сотрудники», но для разделения личных и служебных данных о сотруднике используется элемент управления разрыв страницы. Данная форма использует макросы группы «Сотрудники (с переводом страницы)».

Форма «Сотрудники (с переводом страницы)» обладает следующими особенностями.

•	После добавления или изменения записи макрос «ОбновлениеПоляПодчиняется» свойства формы После обновления (AfterUpdate) обновляет поле со списком «Подчиняется».

•	Для раздела области данных на две страницы служит элемент управления разрыв страницы, расположенный под кнопкой «ЛичныеДанные».

•	Перенос фокуса на вторую страницы формы осуществляется макросом «ЛичныеДанные» свойства Нажатие кнопки (OnClick) одноименной кнопки.

•	Перенос фокуса на первую страницы формы осуществляется макросом «СлужебныеДанные» свойства Нажатие кнопки (OnClick) одноименной кнопки.

•	В свойстве Подпись (Caption) кнопок «ЛичныеДанные» и «СлужебныеДанные» для задания назначенных клавиш используется амперсанд (&).


Формы «Заказы» и «Подчиненная форма заказов»

Форма «Заказы» является основной и имеет одну подчиненную форму. Основная форма содержит сведения о заказах и допускает их добавление, изменение и удаление. Данная форма связана со скрытым запросом «Запрос Заказы». «Подчиненная форма заказов» содержит сведения о заказанных товарах и также допускает добавление, изменение и удаление данных. Подчиненная форма связана с запросом «Сведения о заказах».

Форма «Заказы»

В следующих элементах управления формы «Заказы» использованы выражения.

•	В поле «ПромежуточнаяСумма» формы «Заказы» для ссылки на значение поля «ПромежуточнаяСумма» формы «Подчиненная форма заказов» используется выражение из значения свойства Данные (ControlSource).

•	В поле «Итого» выражение используется для вычисления общей суммы заказа.

•	В свойстве Значение по умолчанию (DefaultValue) поля «ДатаРазмещения» для автоматического указания текущей даты использована функция Date.

Свойства формы и ее элементов управления заданы следующим образом.

•	Для фокусирования текущей записи и запрещения автоматического переключения на следующую запись для свойства Цикл табуляции (Cycle) установлено значение Текущая запись. Для переключения между записями служат кнопки перехода.

•	Свойство Адрес гиперссылки (HyperlinkAddress) кнопки «Товары месяца со скидкой» имеет значение Товары.doc – документ Microsoft Word, открывающийся после ее нажатия.

•	Свойство Всплывающая подсказка (ControlTipText) поля со списком «КодКлиента» определяет текст подсказки, появляющейся на экране в режиме формы при помещении на данное поле указателя мыши.

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

•	В поле со списком «КодКлиента» используется процедура обработки события свойства До обновления (BeforeUpdate), выводящая на экран в случае незаполнения данного поля соответствующее сообщение.

•	В поле со списком «КодКлиента» для присвоения значений полей из области оплаты формы соответствующим полям из области получателя используется процедура обработки события свойства После обновления (AfterUpdate).

•	Процедура обработки события свойства Нажатие кнопки (OnClick) кнопки «ПечатьСчета» выводит для текущей записи отчет «Счет». (запрос на выборку задается аргументом имяОтчета метода OpenReport.)

Форма «Подчиненная форма заказов»

Для вычисления суммы отчета в выражении для поля «ОтпускнаяЦена» используется функция Sum.

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

•	Процедура обработки события свойства формы Ошибка (OnError) в случае незаполнения в форме «Заказы» поля со списком «КодСотрудника» выводит на экран соответствующее сообщение и удаляет все введенные записи.

•	Поцедура обработки события свойства После обновления (AfterUpdate) поля со списком «КодТовара» используется для задания цены выбранного товара.

•	Процедуры обработки событий свойств формы До подтверждения (BeforeDelConfirm) и До обновления (BeforeUpdate) и свойства До обновления (BeforeUpdate) поля со списком «КодТовара» в случае попытки добавления, изменения или удаления записи подчиненной формы, открытой в обычном виде, выводят на экран соответствующее сообщение и отменяют все внесенные изменения.


Формы «Поставщики», «Товары» и «Список товаров»

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

Форма «Поставщики»

Форма «Поставщики» позволяет добавлять, изменять и удалять сведения о поставщиках. Данная форма связана с одноименной таблицей. В поле «Основная страница» содержатся гиперссылки на основные страницы некоторых поставщиков.

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

•	Процедура обработки события свойства Нажатие кнопки (OnClick) кнопки «ВводТоваров» открывает форму «Товары» и задает для ее свойства OpenArgs код текущего поставщика. (Это значение используется формой при добавлении записи для установки значения поля со списком «КодПоставщика».)

•	Процедура обработки события свойства Нажатие кнопки (OnClick) кнопки «ПросмотрТоваров» открывает форму «Список товаров» и выводит список товаров для текущего поставщика, если в поле со списком «КодПоставщика» задано какое-либо значение. В противном случае, появляется приглашение на ввод поставщика.

•	Процедура обработки события свойства формы До обновления (BeforeUpdate) в случае ввода в поле «Индекс» значения, не соответствующего стране, введенной в поле «Страна», выводит на экран соответствующее сообщение об ошибке.

•	Процедура обработки события свойства формы Закрытие (OnClose) закрывает формы «Товары» и «Список товаров», если закрыта форма «Поставщики».

•	Процедура обработки события свойства Текущая запись (OnCurrent) формы «Поставщики» при перемещении между записями в этой форме осуществляет автоматическое изменение значений формы «Список товаров», если она открыта.

Примечание.   Группа макросов «Поставщики» дублирует все возможности процедур Sub модуля формы. Для выявления соотношений между макросом и процедурой Sub их можно сравнить.

Форма «Товары»

Форма «Товары» позволяет добавлять, изменять и удалять сведения о товарах. Форма связана с одноименной таблицей.

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

•	Процедура обработки события свойства Нажатие кнопки (OnClick) кнопки «СохранитьВФорматеHTML» сохраняет упорядоченный по алфавиту список из отчета «Товары» в формате HTML и открывает его в средстве просмотра Интернета. Она использует шаблон для отчетов базы данных «Борей» Шабборей.htm.

•	Процедура обработки события свойства После обновления (AfterUpdate) поля «Марка» при заданном значении свойства формы OpenArgs устанавливает его для поля со списком «КодПоставщика». (Данное свойство имеет заданное значение только в случае открытия формы «Товары» из формы «Поставщики».)

Форма «Список товаров»

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

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

Свойство формы	Значение
Режим по умолчанию (DefaultView)	Ленточная форма
Разрешить изменение (AllowEdits)	Нет
Разрешить удаление (AllowDeletions)	Нет
Разрешить добавление (AllowAdditions)	Нет
Ввод данных (DataEntry)	Нет


Формы «Наклейки для клиентов», «Отчеты о продажах» и «Главная кнопочная форма»

Рассматриваемые в данном разделе диалоговые формы демонстрируют три различных способа создания диалоговых окон, последующие действия которых зависят от введенных данных. В форме «Наклейки для клиентов» используются макросы; в форме «Отчеты о продажах» –процедуры обработки событий; в «Главной кнопочной форме» – функции в процедурах обработки событий.

Форма «Наклейки для клиентов»

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

В следующих свойствах формы использованы макросы:

•	В свойстве Нажатие кнопки (OnClick) кнопки «Просмотр» одноименный макрос используется для предварительного просмотра отчета «Наклейки для клиентов». Если при установленном переключателе «КонкретнаяСтрана» из группы «ПечатьНаклеек» страна не была указанна, на экран выводится соответствующее сообщение, после чего выполнение макроса прекращается и фокус перемещается на поле со списком «ВыборСтраны».

•	В свойстве Нажатие кнопки (OnClick) кнопки «Печать» одноименный макрос используется для вывода на печать отчета «Наклейки для клиентов». Если при установленном переключателе «КонкретнаяСтрана» из группы «ПечатьНаклеек» страна не была указанна, на экран выводится соответствующее сообщение, после чего выполнение макроса прекращается и фокус перемещается на поле со списком «ВыборСтраны».

•	В свойстве Нажатие кнопки (OnClick) кнопки «Отмена» одноименный макрос используется для закрытия формы.

Форма «Отчеты о продажах»

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

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

•	Процедура обработки события свойства После обновления (AfterUpdate) группы переключателей «ОтчетДляПечати» в случае выбора для просмотра или печати отчета «Отчеты» по типам разрешает заполнение списка «ВыборТипа».

•	Процедура Sub «ПечатьОтчетов» основной части модуля формы используется в процедурах Sub Печать_Click и Просмотр_Click того же модуля. В зависимости от нажатой кнопки она открывает для просмотра или выводит на печать отчет, установленный в группе переключателей «ОтчетДляПечати».

•	Процедура обработки события свойства Нажатие кнопки (OnClick) кнопок «Просмотр» и «Печать» запускает процедуру Sub «ПечатьОтчетов».

•	Процедура обработки события свойства Нажатие кнопки (OnClick) кнопки «Отмена» осуществляет закрытие формы.

Главная кнопочная форма

Главная кнопочная форма служит для открытия при помощи специальной функции различных форм учебной базы данных «Борей» и для перехода в окно базы данных и выхода из Microsoft Access при помощи процедур обработки событий.

•	Процедура обработки события свойства Нажатие кнопки (OnClick) кнопки «ВыходИзMicrosoftAccess» закрывает базу данных «Борей» и выходит из Microsoft Access.

•	Процедура обработки события свойства Нажатие кнопки (OnClick) кнопки «ОкноБазыДанных» закрывает главную кнопочную форму и выводит на экран окно базы данных с таблицей «Типы».

Текст процедуры обработки события Нажатие кнопки (OnClick) для кнопок, открывающих различные формы, содержится в специальной функции OpenForms в главном разделе модуля формы. Функции, используемые свойством Нажатие кнопки (OnClick) различных кнопок, приведены в таблице.

Кнопка	Свойство «Нажатие кнопки» (OnClick)
Типы	=OpenForms("Типы")
Поставщики	=OpenForms("Поставщики")
Товары	=OpenForms("Товары")
Заказы	=OpenForms("Заказы")
Отчеты о продажах	=OpenForms("Отчеты о продажах")


Отчеты в учебной базе данных «Борей»

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

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

Отчеты

•	«Каталог».   Содержит списки товаров, объединенных по типам. Начинается с двухстраничного введения. Заканчивается бланком заказа.

•	«Продажи по сотрудникам и странам».   Содержит таблицы продаж каждого сотрудника в каждой из стран сбыта.

•	«Товары по типам». Содержит списки товаров, объединенных в столбцы по типам.

•	«Продажи по типам».   Содержит таблицы и диаграммы продаж.


Отчет «Каталог»

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

Помимо полей и подписей, отчет «Каталог» использует следующие элементы управления:

•	«ПереводСтраницыВЗаголовке». Разделяет заголовок на две страницы.

•	«БольшаяЭмблема», «МалаяЭмблема» и «Логотип». Выводят в заголовке и примечании отчета логотип и название фирмы «Борей».

•	«Изображение». Расположено в заголовке группы «Категория». Выводит соответствующее изображение для каждого типа товаров.

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

Поле/ Выражение	Порядок сортировки	Свойства группы
Категория	По возрастанию	Заголовок группы:  Да Примечание группы:  Да Группировка:  По полному значению Интервал:  1 Не разрывать:  Вся группа
Марка	По возрастанию	(Значение по умолчанию)
Точность печати отчета задается следующими значениями свойств.

Область отчета	Свойство	Значение
Отчет	Нижний колонтитул (PageFooter)	Без заголовка/примечания
Заголовок отчета	Конец страницы (ForceNewPage)	После раздела
Примечание отчета	Конец страницы (ForceNewPage)	До раздела
Верхний колонтитул	Высота (Height)	0
Заголовок группы Категория	Не разрывать (KeepTogether)	Да
Поле Описание	Расширение (CanGrow)	Да


Отчет «Продажи по сотрудникам и странам»

Отчет «Продажи по сотрудникам и странам» содержит сведения по распределению продаж по странам и сотрудникам, а также суммы и процентные отношения продаж каждого сотрудника в каждой стране. Данный отчет связан с одноименным запросом.

Для вывода на каждой странице отчета фонового рисунка свойству Рисунок присвоено значение Confidential.bmp.

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

Поле/ Выражение	Порядок сортировки	Свойства группы
Страна	По возрастанию	Заголовок группы:  Да Примечание группы:  Да Группировка:  По полному значению Интервал:  1 Не разрывать:  Первую область данных
=[Фамилия] & ", " & [Имя]	По возрастанию	Заголовок группы:  Да Примечание группы:  Да Группировка:  По полному значению Интервал:  1 Не разрывать:  Первую область данных
КодЗаказа	По возрастанию	(Значение по умолчанию)
В следующих свойствах отчета использованы процедуры обработки событий.

•	Процедура обработки события свойства Отсутствие данных (OnNoData) отчета при отсутствии записей для введенных дат выводит соответствующее сообщение и запрещает просмотр или печать отчета. (Начальную и конечную даты запрашивает запрос «Продажи по сотрудникам и странам».)

•	Процедура обработки события свойства Форматирование (OnFormat) заголовка группы «Страна» при переходе к новой стране устанавливает для номера страницы значение 1.

•	Процедура обработки события свойства Форматирование (OnFormat) заголовка группы «=[Фамилия] & ", " & [Имя]» выводит на экран строки «ОптимальныйРезультатНадпись» и «ПродавецНадпись», если значение в поле «ИтогиПродавца» удовлетворяет условиям отбора.

В следующих элементах управления использованы выражения.

•	Поле «Диапазон» заголовка отчета содержит конечную и начальную даты, введенные в ответ на приглашение запроса «Продажи по сотрудникам и странам».

•	Поле «ПроцентОтИтоговПоПродавцам» области данных содержит процентный вклад текущего заказа в общую сумму заказов продавца.

•	Поле «ПроцентОтИтоговПоСтранам» области данных содержит процентный вклад текущего заказа в общую сумму заказов страны.

•	Поле «ИтогиПродавца» в примечании группы «=[Фамилия] & ", " & [Имя]» содержит сумму продаж продавца, вычисленную функцией Sum.

•	Поле «ПроцентОтИтоговПоСтранам2» в примечании группы «=[Фамилия] & ", " & [Имя]» содержит процентный вклад продаж продавца в общую сумму продаж страны.

•	Поле «ИтогиПоСтранам» примечания группы «Страна» содержит сумму продаж страны, вычисленную функцией Sum.

•	Поле «ПроцентОтПолныхИтогов» примечания группы «Страна» содержит процентный вклад продаж страны в общую сумму продаж.

•	Поле «ПолныйИтог» примечания отчета содержит сумму продаж по всем странам, вычисленную функцией Sum.


Отчет «Товары по типам»

Отчет «Товары по типам» состоит из нескольких столбцов, каждый из которых содержит определенный тип товаров. Данный отчет связан с одноименным скрытым запросом.

Элементы управления отчета «Товары по типам» обладают следующими особенностями.

•	Поле «Число товаров» примечания группы «Категория» содержит число товаров категории, определяемое функцией Count.

•	Все поля группы, подписи и записи расположены на расстоянии в 7,5см от левой границы отчета. (В заголовке группы и области данных такой отступ соответствует ширине, заданной в окне диалога Параметры страницы. Размер области данных соответствует установкам этого же окна. Более подробные сведения приведены в следующей таблице.)

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

Вкладка	Свойство	Значение
Страница	Ориентация	Альбомная
Столбцы	Число столбцов	3
	Интервалы столбцов	0,635см
	Ширина	7,619см
	Высота	0,635см
	По размеру данных	Снят
	Сверху вниз	Установлен
Для областей отчета установлены следующие свойства.

Область отчета	Свойство	Значение
Заголовок отчета	Цвет фона (BackColor)	12632256 (Светло-серый)
Верхний колонтитул	Цвет фона (BackColor)	12632256  (Светло-серый)
	Высота (Height)	0,238см
Заголовок группы Категория	Новая строка или столбец (NewRowOrCol)	До раздела
Свойства в поле Сортировка и группировка заданы следующим образом.

Поле/ Выражение	Порядок сортировки	Свойства группы
Категория	По возрастанию	Заголовок группы:  Да Примечание группы:  Да Группировка:  По полному значению Интервал:  1 Не разрывать:  Первую область данных
Марка	По возрастанию	(Значение по умолчанию)


Отчеты «Продажи по типам» и «Подчиненный для продаж по типам»

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

Отчет «Продажи по типам»

Элементы управления отчета «Продажи по типам» обладают следующими особенностями:

•	Область данных отчета не содержит элементов управления и для ее свойства Высота (Height) задано значение 0, так как записи выводятся в отчете «Подчиненный для продаж по типам».

•	Скрытое поле «КодТипа» осуществляет связь между диаграммой и главным отчетом.

•	Надписи «Товар» и «Продажи» являются заголовками столбцов для данных в подчиненном отчете.

•	Свойство Расширение (CanGrow) элемента управления подчиненного отчета имеет значение Да.

•	Нижние границы подчиненного отчета и диаграммы «Graph10» расположены так, чтобы подчиненный отчет не расширялся до тех пор, пока не заполнит пространство, равное высоте соседней диаграммы.

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

Поле/ Выражение	Порядок сортировки	Свойства группы
Категория	По возрастанию	Заголовок группы:  Да (Остальные свойства имеют значения по умолчанию)
Отчет «Подчиненный для продаж по типам»

Отчет «Подчиненный для продаж по типам» состоит только из области данных и содержит поля «Марка» и «ПродажиТовара».

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

Поле/ Выражение	Порядок сортировки	Свойства группы
Марка	По возрастанию	(Значение по умолчанию)