- •Введение
- •1. Основные понятия теории баз данных
- •1.1. Классификация баз данных
- •1.2. Структурные элементы базы данных
- •1.3. Модели данных
- •1.4. Системы управления базами данных
- •1.5. Свойства субд и базы данных
- •1.6. Обзор субд
- •1.7. База данных Access
- •2. Проектирование баз данных
- •2.1. Разработка макета базы данных
- •Задача.
- •2.2. Создание новой базы данных
- •2.3. Создание таблицы путем ввода данных
- •2.4. Создание таблицы в режиме конструктора
- •2.4. Создание таблицы Адреса сотрудников
- •2.5. Создание таблицы Родственники сотрудника
- •2.6. Схема данных
- •3. Запросы
- •3.1. Мастер запросов
- •3.2. Конструктор запросов
- •3.3. Условия отбора и вычисляемые поля
- •Возраст: Int((Date()-[Дата рождения])/365)
- •4. Формы
- •4.1. Мастер форм
- •4.2. Конструктор форм
- •Элементы управления форм и отчетов
- •4.3. Подчиненная форма
- •5. Отчеты
- •5.1. Мастер отчетов
- •5.2. Конструктор отчетов
- •5.3. Сортировка и группировка
- •5.4. Подведение промежуточных итогов
- •Сотрудников по подразделениям
- •6. Макросы и модули
- •6.1 Макросы
- •6.2. Модули
- •7. Вывод результатов
- •7.1. Предварительный просмотр
- •7.2. Печать объектов базы данных
- •Назначение опций диалогового окна Печать
- •7.3. Файловые операции
- •Литература
5.3. Сортировка и группировка
Отчет, который мы сконструировали, имеет еще один существенный недостаток. Список сотрудников выводится не по алфавиту. Мастер отчетов автоматически сгруппировал данные таблицы Родственники сотрудника по их принадлежности к тем или иным записям таблицы Карточка сотрудника, которая определяется связью между полями Код этих двух таблиц. По указанной причине сотрудники в отчете упорядочены по возрастанию числового параметра Код - идентификатора записей таблицы Карточка сотрудника. Это неудобно, в отчетах с большим числом записей при такой сортировке будет довольно трудно отыскать нужного человека. Есть смысл изменить порядок сортировки.
Откройте отчет Родственники сотрудников в режиме конструктора.
Щелкните на кнопке (Сортировка и группировка) панели инструментов, чтобы открыть окно диалога, показанное на рис.5.4.
В этом окне назначены два уровня сортировки. Сначала в порядке возрастания по полю Код, а затем в пределах списка родственников, относящихся к одному сотруднику, по убыванию степени родства. На кнопке строки Код виден значок, указывающий на то, что записи группируются по данному полю, то есть при переборе записей таблицы Карточка сотрудника для каждого нового значения поля Код генерируется заголовок группы, в котором в нашем отчете выводятся фамилия, имя, отчество сотрудника и надписи полей из таблицы Родственники сотрудника.
Рис.5.4. Сортировка и группировка
Казалось бы, можно просто изменить поле сортировки Код на Фамилия, и записи в отчете сразу же выстроятся по алфавиту. Но в этом случае для четырех людей с одинаковой фамилией Петровский будет выведен только один заголовок группы, ниже которого разместится список родственников всех Петровских. Вспомните, что новый заголовок группы выводится только для каждого нового значения поля, по которому выполняется группировка. Код - уникальный идентификатор записей таблицы Карточка сотрудника, группировка по которому обеспечивает вывод в отчет всех записей этой таблицы.
Для сортировки записей по алфавиту фамилий и имен следует добавить в список окна диалога Сортировка и группировка соответствующие поля, разместив их выше поля группировки Код.
Щелкните в третьей строке на кнопке раскрывающегося списка Поле/выражение.
Выберите пункт Карточка сотрудника.Фамилия.
В раскрывающемся списке Поле/выражение четвертой строки окна Сортировка и группировка выберите пункт Карточка сотрудника.Имя.
При добавлении нового поля сортировки Access автоматически назначает ему порядок сортировки По возрастанию. Чтобы реализовать обратный порядок записей, выберите в раскрывающемся списке ячейки Порядок сортировки соответствующей строки пункт По убыванию.
Щелчком на кнопке строки Карточка сотрудника.Фамилия выделите ее.
Поместите указатель на кнопку строки Карточка сотрудника.Фамилия, нажмите кнопку мыши и перетащите строку на самый верх списка. Отпустите кнопку мыши в тот момент, когда жирная горизонтальная линия, показывающая будущее расположение перемещаемой строки, окажется над первой строкой таблицы.
Повторяя шаги 6 и 7, разместите строку Карточка сотрудника.Имя между строками Карточка сотрудника.Фамилия и Код.
Закройте окно Сортировка и группировка.
Щелкните на кнопке Вид панели инструментов, чтобы вывести отчет в режиме предварительного просмотра.
Теперь записи сначала сортируются по фамилиям, затем по именам. После этого для каждой новой записи таблицы Карточка сотрудника появляется заголовок группы (так как величины поля Код для всех записей различны). Ниже каждого такого заголовка из таблицы Родственники сотрудника выводятся все родственники, соответствующие данному значению величины Код, то есть данному сотруднику (рис.5.5).
Заголовки тех групп, для которых нет ни одной записи в таблице Родственники сотрудника, в отчет не выводятся.
Закройте отчет.
Рис.5.5. Фрагмент окончательного варианта отчета