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

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

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

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

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

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

Объекты

•	Таблицы

•	Запросы

•	Формы

•	Отчеты

•	Страницы доступа к данным


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

Запрос «Итоги продаж по объему» возвращает только записи для заказов с суммой счета более 25 000 р., размещенных в 1997 году. Для задания этого условия в ячейке Условие отбора для поля «ОбъемПродаж» задано условие >25000,а для поля «ДатаРазмещения» условие Between #01.01.97# And #31.12.97#.

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


Страницы доступа к данным в базе данных «Борей»

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

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

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

«Анализ продаж».   Интерактивный просмотр сведений о продажах с использованием сводного списка.

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

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

«Продажи».   При выборе типа товара в сводном списке сведения о товарах данного типа отображаются в сводном списке и в диаграмме, присоединенной к этому списку.

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


Страница доступа к данным «Анализ продаж»

Страница доступа к данным «Анализ продаж» позволяет динамически анализировать сведения о продажах путем изменения их порядка в сводном списке. Свойство Развертывать элементы по умолчанию (ExpandItemsByDefault) сводного списка имеет значение Никогда, поэтому при открытии страницы в режиме страницы или в Microsoft Internet Explorer отображаются только сводные данные. Для того чтобы просмотреть отдельные записи по конкретному клиенту, щелкните маркер развертывания рядом с названием компании.

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

Элемент сводного списка	Поле в базе данных (источник записей)
Поле фильтра	СтранаПолучателя (таблица «Заказы»)
Поле строк	НазваниеПолучателя (таблица «Заказы»)
Поле столбца	Фамилия (таблица «Сотрудники»)
Итоги	Сумма заказов  (источником служит поле «ПромежуточнаяСумма»)
Итоги	Число заказов  (источником служит поле «КодЗаказа»)
Поле данных	КодЗаказа  (запрос «Промежуточная сумма заказа»)
Поле данных	ПромежуточнаяСумма  (запрос «Промежуточная сумма заказа»)


Страница доступа к данным «Обзор заказов»

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

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

Раскрывающийся список CompanyName1 в заголовке «Клиенты» является фильтром группы. В режиме страницы или в Internet Explorer элемент управления CompanyName скрыт; элемент управления CompanyName используется для добавления поля «Название» из таблицы «Заказы» в определение данных страницы. Другие элементы управления на странице не отображаются до тех пор, пока из списка не будет выбрано название. Данные на других уровнях группировки отображаются в присоединенных элементах HTML.

Элемент развертывания, кнопки перехода по записям и раздел кнопок перехода для уровня группировки «Клиенты» были удалены. Для других уровней группировки используются только те кнопки перехода по записям, которые применимы на страницах, доступных только для чтения. Следующие свойства элементов управления OrdersNavigation и OrderDetailsExtendedNavigation имеют значение Ложь: ShowDelButton, ShowFilterBySelectionButton, ShowNewButton, ShowSaveButton, ShowSortAscendingButton, ShowSortDescendingButton, ShowToggleFilterButton и ShowUndoButton.

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

Источник группы записей «Клиенты»

Свойство	Значение
Раздел подписей (CaptionSection) Заголовок группы (GroupHeader) Примечание группы (GroupFooter) Раздел кнопок перехода (RecordNavigationSection) Развернуто по умолчанию (ExpandedByDefault) Элемент фильтра группы (GroupFilterControl) Поле фильтра группы (GroupFilterField)	Нет Да Нет Нет Да CompanyName1 Название
Источник группы записей «Заказы»

Свойство	Значение
Раздел подписей (CaptionSection) Заголовок группы (GroupHeader) Примечание группы (GroupFooter) Раздел кнопок перехода (RecordNavigationSection) Развернуто по умолчанию (ExpandedByDefault) Размер страницы доступа (DataPageSize)	Нет Да Нет Да Нет 5
Источник группы записей «Сведения о заказах»

Свойство	Значение
Раздел подписей (CaptionSection) Заголовок группы (GroupHeader) Раздел кнопок перехода (RecordNavigationSection) Размер страницы доступа (DataPageSize)	Да Да Да 5


Страница доступа к данным «Обзор товаров»

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

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

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

Элемент перехода по записям содержит только те кнопки, которые применимы для доступных только для чтения страниц доступа к данным, для отображения данных на которых используются поля. Следующие свойства элементов управления CategoriesNavigation и ProductsNavigation имеют значение Ложь: ShowDelButton, ShowNewButton, ShowSaveButton и ShowUndoButton.

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

Источник группы записей «Типы»

Свойство	Значение
Раздел подписей (CaptionSection) Заголовок группы (GroupHeader) Примечание группы (GroupFooter) Раздел кнопок перехода (RecordNavigationSection) Развернуто по умолчанию (ExpandedByDefault) Размер страницы доступа (DataPageSize)	Нет Да Нет Да Нет 3
Источник группы записей «Товары»

Свойство	Значение
Раздел подписей (CaptionSection) Заголовок группы (GroupHeader) Раздел кнопок перехода (RecordNavigationSection) Развернуто по умолчанию (ExpandedByDefault) Размер страницы доступа (DataPageSize)	Да Да Да Нет 3


Страница доступа к данным «Продажи»

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

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

Элемент сводного списка	Поле в запросе «Продажи товаров в 1997»
Поле фильтра	Категория
Поле строк	Марка
Поле столбца	КварталИсполнения
Итоги	Сумма ПродажиТоваров  (источником служит поле ПродажиТоваров)
Поле данных	ПродажиТоваров
Гистограмма, присоединенная к сводному списку, была создана с помощью мастера диаграмм. Диаграмма отображает данные из столбцов «КварталИсполнения».


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

На странице доступа к данным «Список товаров» можно просматривать, вводить и редактировать сведения о продуктах.

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

Для отображения данных используются поля, раскрывающиеся списки и флажки.

Элемент перехода по записям содержит все возможные кнопки.

В следующей таблице приведен список значений свойств источника группы записей «Товары» в окне Сортировка и группировка.

Свойство	Значение
Заголовок группы (GroupHeader) Раздел кнопок перехода (RecordNavigationSection) Размер страницы доступа (DataPageSize)	Да Да 1


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

•	Процедура обработки события Нажатие кнопки (OnClick) кнопки «ВыводHTML» выводит отчет «Список товаров» в формате HTML и открывает его в обозревателе Интернета. Данная процедура использует файл Nwindtem.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 Не разрывать:  Вся группа
Отчет «Подчиненный для каталога» основан на таблице «Товары». Свойства данного подчиненного отчета в поле Сортировка и группировка заданы следующим образом.

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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