Методичка Access


Содержание
TOC \o \u 1. Введение в базы данных PAGEREF _Toc379885007 \h 4
1.1. Основные понятия и определения PAGEREF _Toc379885008 \h 4
1.2. Современное состояние технологий баз данных PAGEREF _Toc379885009 \h 5
1.3. Базы данных PAGEREF _Toc379885010 \h 7
1.4. Реляционные БД PAGEREF _Toc379885011 \h 10
1.5. Системы управления базами данных PAGEREF _Toc379885012 \h 11
1.6. СУБД Access PAGEREF _Toc379885013 \h 12
1.7. Объекты Access PAGEREF _Toc379885014 \h 12
1.8. Запуск и завершение работы PAGEREF _Toc379885015 \h 13
1.9. Открытие и закрытие БД PAGEREF _Toc379885016 \h 14
2. Построение базы данных PAGEREF _Toc379885017 \h 15
2.1. Основные принципы проектирования БД PAGEREF _Toc379885018 \h 15
2.2. Создание новой базы данных PAGEREF _Toc379885019 \h 17
2.3. Создание таблиц PAGEREF _Toc379885020 \h 17
2.3.1. Режим таблицы PAGEREF _Toc379885021 \h 17
2.3.2. Режим конструктора таблицы PAGEREF _Toc379885022 \h 18
2.3.3. Мастер таблиц PAGEREF _Toc379885023 \h 29
2.3.4. Связывание таблиц PAGEREF _Toc379885024 \h 30
2.4. Сохранение таблицы PAGEREF _Toc379885025 \h 30
2.5. Определение связей между таблицами PAGEREF _Toc379885026 \h 31
2.5.1. Типы связей между таблицами PAGEREF _Toc379885027 \h 31
2.5.2. Создание связей PAGEREF _Toc379885028 \h 33
3. Работа с таблицей PAGEREF _Toc379885029 \h 35
3.1. Ввод данных PAGEREF _Toc379885030 \h 36
3.2. Перемещение по таблице PAGEREF _Toc379885031 \h 38
4. Создание запросов PAGEREF _Toc379885032 \h 39
4.1. Общая характеристика запросов PAGEREF _Toc379885033 \h 39
4.1.1. Типы запросов в Access PAGEREF _Toc379885034 \h 40
4.1.2. Режимы окна запроса PAGEREF _Toc379885035 \h 41
4.1.3. Создание запроса PAGEREF _Toc379885036 \h 41
4.2. Работа в окне конструктора запросов PAGEREF _Toc379885037 \h 43
4.2.1. Добавление или удаление таблицы/запроса PAGEREF _Toc379885038 \h 44
4.2.2. Включение полей в бланк запроса PAGEREF _Toc379885039 \h 44
4.2.3. Добавление столбца в бланк запроса PAGEREF _Toc379885040 \h 45
4.2.4. Удаление столбца из бланка запроса PAGEREF _Toc379885041 \h 45
4.2.5. Перемещение поля в бланке запроса PAGEREF _Toc379885042 \h 45
4.2.6. Добавление вычисляемого поля PAGEREF _Toc379885043 \h 45
4.2.7. Изменение имени поля в запросе PAGEREF _Toc379885044 \h 46
4.2.8. Отображение/скрытие поля в результатах запроса PAGEREF _Toc379885045 \h 47
4.2.9. Изменение ширины столбца в бланке запроса PAGEREF _Toc379885046 \h 47
4.2.10. Сортировка результатов запроса PAGEREF _Toc379885047 \h 47
4.2.11. Вставка или удаление строки условий отбора PAGEREF _Toc379885048 \h 47
4.2.12. Установка свойств запроса PAGEREF _Toc379885049 \h 48
4.2.13. Установка свойств полей запроса PAGEREF _Toc379885050 \h 48
4.2.14. Предварительный просмотр результатов запроса PAGEREF _Toc379885051 \h 49
4.2.15. Выполнение запроса PAGEREF _Toc379885052 \h 50
4.2.16. Сохранение запроса PAGEREF _Toc379885053 \h 50
4.3. Отбор записей в однотабличных запросах PAGEREF _Toc379885054 \h 50
4.3.1. Точное совпадение значений полей PAGEREF _Toc379885055 \h 50
4.3.2. Использование нескольких строк условий PAGEREF _Toc379885056 \h 51
4.3.3. Использование вычисляемых полей PAGEREF _Toc379885057 \h 52
4.3.4. Использование ссылки на элемент управления PAGEREF _Toc379885058 \h 52
4.3.5. Использование параметров в условиях отбора PAGEREF _Toc379885059 \h 52
4.3.6. Использование в условиях отбора подчиненного запроса PAGEREF _Toc379885060 \h 54
4.4. Перекрестные запросы PAGEREF _Toc379885061 \h 55
4.4.1. Мастер Создание перекрестных таблиц PAGEREF _Toc379885062 \h 56
4.4.2. Создание перекрестного запроса без помощи мастера PAGEREF _Toc379885063 \h 58
4.5. Запросы на изменение PAGEREF _Toc379885064 \h 61
4.5.1. Запрос на добавление PAGEREF _Toc379885065 \h 62
4.5.2. Запрос на удаление PAGEREF _Toc379885066 \h 64
4.5.3. Запрос на создание таблицы PAGEREF _Toc379885067 \h 65
4.5.4. Запрос на обновление PAGEREF _Toc379885068 \h 67
4.5.5. Ошибки при выполнении запросов на изменение PAGEREF _Toc379885069 \h 68
5.Формы PAGEREF _Toc379885070 \h 68
5.1. Общие сведения PAGEREF _Toc379885071 \h 68
5.1.1. Структура формы PAGEREF _Toc379885072 \h 70
5.1.2. Виды форм PAGEREF _Toc379885073 \h 71
5.1.3. Содержимое формы PAGEREF _Toc379885074 \h 72
5.2. Создание формы PAGEREF _Toc379885075 \h 72
5.2.1. Использование Мастера форм PAGEREF _Toc379885076 \h 72
5.2.2. Использование Конструктора форм PAGEREF _Toc379885077 \h 73
5.3. Создание основных ЭУ PAGEREF _Toc379885078 \h 79
5.4.Настройка формы PAGEREF _Toc379885079 \h 80
5.4.1. Изменение свойств ЭУ PAGEREF _Toc379885080 \h 80
5.4.2. Изменение последовательности перехода PAGEREF _Toc379885081 \h 81
5.4.3. Добавление разделов PAGEREF _Toc379885082 \h 81
5.4.4. Изменение свойств формы PAGEREF _Toc379885083 \h 82
5.5. Создание диаграмм PAGEREF _Toc379885084 \h 83
5.6. Составные формы PAGEREF _Toc379885085 \h 87
5.6.1. Использование мастера Создание форм PAGEREF _Toc379885086 \h 88
5.6.2. Использование ЭУ Подчиненная форма/отчет PAGEREF _Toc379885087 \h 94
5.6.3. Добавление готовой подчиненной формы PAGEREF _Toc379885088 \h 98
5.6.4. Использование для связи других ЭУ PAGEREF _Toc379885089 \h 98
6. Отчеты PAGEREF _Toc379885090 \h 100
6.1. Основные понятия PAGEREF _Toc379885091 \h 100
6.2. Создание отчета PAGEREF _Toc379885092 \h 102
6.2.1. Создание отчета с помощью Мастера отчетов PAGEREF _Toc379885093 \h 103
6.2.2. Создание отчета с помощью Конструктора PAGEREF _Toc379885094 \h 104
6.3. Сортировка и группирование PAGEREF _Toc379885095 \h 104
6.4. Режимы окна отчета PAGEREF _Toc379885096 \h 107
6.5. Печать отчета PAGEREF _Toc379885097 \h 108
Лабораторная работа № 1 Изучение структуры, свойств и создание таблиц реляционной базы данных PAGEREF _Toc379885098 \h 110
Лабораторная работа № 2 Изучение типов, порядка построения и реализации запросов реляционной БД MS ACCESS PAGEREF _Toc379885099 \h 131
Лабораторная работа № 3 Создание, изучение свойств и структуры форм реляционной базы данных PAGEREF _Toc379885100 \h 138
Лабораторная работа № 4 PAGEREF _Toc379885101 \h 150
Создание и печать отчетов PAGEREF _Toc379885102 \h 150
Лабораторная работа № 5 PAGEREF _Toc379885103 \h 162
Работа с макросами PAGEREF _Toc379885104 \h 162
Приложение PAGEREF _Toc379885105 \h 172
Пример теста PAGEREF _Toc379885106 \h 176
Библиографический список PAGEREF _Toc379885107 \h 180

1. Введение в базы данных1.1. Основные понятия и определенияСтержневые идеи современных информационных технологий базируются на концепции баз данных. Согласно этой концепции, основой информационных технологий являются данные, которые должны быть организованы в базы данных в целях адекватного отображения изменяющегося реального мира и удовлетворения информационных потребностей пользователей. Одним из важнейших понятий в теории баз данных является понятие информации. Под информацией понимаются любые сведения о каком-либо событии, процессе, объекте.
Данные — это информация, представленная в определенном виде, позволяющем автоматизировать ее сбор, хранение и дальнейшую обработку человеком или информационным средством. Для компьютерных технологий данные — это информация в дискретном, фиксированном виде, удобная для хранения, обработки на ЭВМ, а также для передачи по каналам связи.
База данных (БД) — именованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области, или иначе БД — это совокупность взаимосвязанных данных при такой минимальной избыточности, которая допускает их использование оптимальным образом для одного или нескольких приложений в определенной предметной области. БД состоит из множества связанных файлов.
Система управления базами данных (СУБД) — совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.
Автоматизированная информационная система (АИС) — это система, реализующая автоматизированный сбор, обработку, манипулирование данными, функционирующая на основе ЭВМ и других технических средств и включающая соответствующее программное обеспечение (ПО) и персонал. В дальнейшем в этом качестве будет использоваться термин информационная система (ИС), который подразумевает понятие автоматизированная.
Каждая ИС в зависимости от ее назначения имеет дело с той или иной частью реального мира, которую принято называть предметной областью (ПрО) системы. Выявление ПрО — это необходимый начальный этап разработки любой ИС. Именно на этом этапе определяются информационные потребности всей совокупности пользователей будущей системы, которые, в свою очередь, предопределяют содержание ее базы данных.
Банк данных (БнД) является разновидностью ИС. БнД — это система специальным образом организованных данных: баз данных, программных, технических, языковых, организационно-методических средств, предназначенных для обеспечения централизованного накопления и коллективного многоцелевого использования данных.
Под задачами обработки данных обычно понимается специальный класс решаемых на ЭВМ задач, связанных с видом, хранением, сортировкой, отбором по заданному условию и группировкой записей однородной структуры.
Отдельные программы или комплекс программ, реализующие автоматизацию решения прикладных задач обработки данных, называются приложениями. Приложения, созданные средствами СУБД, относят к приложениям СУБД. Приложения, созданные вне среды СУБД с помощью систем программирования, использующих средства доступа к БД, к примеру, Delphi или Visual Studio, называют внешними приложениями.
1.2. Современное состояние технологий баз данныхКратко сформулируем основные современные принципы организации баз данных:
значительная часть современных СУБД способна работать на компьютерах различной архитектуры под управлением разных операционных систем;
подавляющее большинство современных СУБД обеспечивают поддержку полной реляционной модели данных, обеспечивая целостность категорий и целостность на уровне ссылок;
современные СУБД для определения данных и манипуляции ими опираются на принятые стандарты в области языков, а при обмене данными между различными СУБД базируются на существующих технологиях по обмену информацией;
многие существующие СУБД относятся к так называемым сетевым СУБД, которые предназначены для поддержки многопользовательского режима работы с базой данных и поддержки возможности децентрализованного хранения данных;
такие СУБД имеют развитые средства администрирования баз данных и средства защиты хранимой в них информации.;
подобные СУБД имеют средства подключения клиентских приложений;
современные СУБД характеризуются опытами применения концепции фундаментальной идеи объектно-ориентированного подхода, способствующей повышению уровня абстракции баз данных, являющейся перспективным этапом на пути развития технологий баз данных.
Информационные системы, созданные средствами технологии баз данных, иногда принято называть банками данных (БнД).
БнД включает в себя:
технические средства;
одну или несколько БД;
СУБД;
словарь или каталог данных;
администратора;
вычислительную систему;
обслуживающий персонал.
Схематично это выглядит так, как показано на рис. 1.1.

Рис. 1.1. Банк данных
Дадим краткие определения новым составляющим этой схемы.
Словарь или каталог данных служит для централизованного накопления и описания ресурса данных. Он содержит описание ПрО, сведения о структуре БД, о связях между элементами БД. Словарь данных можно рассматривать как часть самой базы данных.
Администратор БД (АБД) — человек или группа лиц, которые принимают решения. Основные функции АБД:
участие в разработке БД;
контроль правильности функционирования БД.
Вычислительная система (ВС) — включает программные (ПС) и аппаратные средства (ТС).
Обслуживающий персонал (ОП) — это лица, прямыми обязанностями которых является создание и поддержание корректного функционирования банка данных. Они ответственны за работу БнД и прикладного программного обеспечения. К обслуживающему персоналу относятся: разработчики и администраторы базы данных, аналитики, программисты.
1.3. Базы данныхБД, как правило, создается как общий ресурс всего предприятия, где данные являются интегрированными и общими. Под понятием интегрированные данные подразумевается возможность представить базу данных как объединение нескольких отдельных файлов данных. Под понятием общие данные подразумевается возможность использования отдельных областей данных в БД несколькими различными пользователями для разных целей.
В базе данных информация должна быть организована так, чтобы обеспечить минимальную долю ее избыточности. Частичная избыточность информации необходима, но она должна быть минимизирована, так как чрезмерная избыточность данных влечет за собой ряд негативных последствий. Главные из них:
увеличение объема информации, а значит, потребность в дополнительных ресурсах для хранения и обработки дополнительных объемов данных;
появление ошибок при вводе дублирующей информации, нарушающих целостность базы данных и создающих противоречивые данные.
БД содержит не только данные, всесторонне характеризующие деятельность самой организации, фирмы, процесса или другой предметной области, но и описания этих данных. Информацию о данных принято называть "метаданными", т. е. "данными о данных". В совокупности описания всех данных образуют словарь данных.
В БД должны храниться данные, логически связанные между собой.
Для того чтобы данные можно было связать между собой, и связать так, чтобы эти связи соответствовали реально существующим в данной предметной области, последнюю подвергают детальному анализу, выделяя сущности или объекты. Сущность или объект — это то, о чем необходимо хранить информацию. Сущности имеют некоторые характеристики, называемые атрибутами, которые тоже необходимо сохранять в БД.
Атрибуты по своей внутренней структуре могут быть простыми, а могут быть сложными. Простые атрибуты могут быть представлены простыми типами данных. Различного рода графические изображения, являющиеся атрибутами сущностей, — это пример сложного атрибута. Определив сущности и их атрибуты, необходимо перейти к выявлению связей, которые могут существовать между некоторыми сущностями. Связь — это то, что объединяет две или более сущностей. Связи между сущностями также являются частью данных, и они также должны храниться в базе данных.
Если все это: сущности, атрибуты сущностей и связи между сущностями определено, то схема базы данных может выглядеть примерно так, как представлено на рис. 1.2. На нем показан пример схемы базы данных, которую можно назвать Факультет.

Рис. 1.2. Пример ER-диаграммы базы данных Факультет.
Схема, которая называется ER-диаграммой (Entity-Relationship), состоит из следующих компонентов:
шести сущностей, которые изображены прямоугольниками, каждый из которых имеет свои атрибуты, помещенные в овалы, а в нижеприведенном списке они перечислены в скобках рядом с именем сущностей: Факультет: (Код_факультета, Назв_факультета, ФИО_декана); Кафедра: (Код_кафедры, Назв_кафедры, Зав_кафедрой); Специальность: (Код_специальности, Назв_специальности); Преподаватель: (Код_преподавателя, ФИО, Должность); Группа: (Код_группы, ФИО_старосты); Студент: (Ном_зач_книжки, ФИО, Пол);
пяти связей, которые обозначены стрелками и связывают те сущности, на которые они направлены:
связь Включает показывает, что на факультете несколько кафедр;
связь Входит изображает, что одна и та же кафедра готовит специалистов по нескольким специальностям;
связь Работает определяет то, что на кафедре работает ряд преподавателей;
связь Обучает с двойными стрелками в обоих направлениях поясняет тот факт, что один и тот же преподаватель преподает в разных группах, а одна и та же группа занимается с разными преподавателями;
связь Обучается определяет, что каждая группа включает в себя ряд студентов.
Из представленной диаграммы понятно, что данные обладают определенной структурой. Для выявления этой структуры база данных должна пройти процесс проектирования.
Проектируемая БД должна обладать определенными свойствами.
Перечислим основные свойства БД.
Целостность. В каждый момент времени существования БД сведения, содержащиеся в ней, должны быть непротиворечивы. Целостность БД достигается вследствие введения ограничений целостности, в частности, к ним относятся ограничения, связанные с нормализацией БД.
Восстанавливаемость. Данное свойство предполагает возможность восстановления БД после сбоя системы или отдельных видов порчи системы.
Безопасность. Безопасность БД предполагает защиту данных от преднамеренного и непреднамеренного доступа, модификации или разрушения. Применяется запрещение несанкционированного доступа, защита от копирования и криптографическая защита.
Эффективность. Свойство эффективности обычно понимается как:
минимальное время реакции на запрос пользователя;
минимальные потребности в памяти;
сочетание этих параметров.
Чтобы обеспечить выполнение этих требований, данные в БД должны иметь определенную структуру. В зависимости от того, какой способ описания структуры данных используется при создании БД, различают сетевые, иерархические, реляционные и объектно-ориентированные БД. В настоящее время наибольшее распространение получили реляционные БД.
1.4. Реляционные БДИнформация в реляционных БД хранится в виде двумерных таблиц. В каждой таблице содержатся сведения о наборе объектов определенного типа (людях, товарах и т.д.).

Рис. 1.3. Пример таблицы Access
Строки таблицы называются записями. Запись — это компьютерный аналог той информации, которая обычно хранилась на карточке или бланке. Любая запись в таблице содержит информацию об отдельном объекте (человеке, товаре).
Столбцы таблицы называются полями. Поле — это компьютерный аналог графы карточки или бланка. В нем содержится информация о каком-либо свойстве описываемых объектов. Все записи состоят из одинакового набора полей. Например, если таблица содержит сведения о студентах, то в каждой ее записи хранится информация о конкретном студенте (см. рис. 1.3). В одно поле помещается его код, в другое - номер учебной группы, в третье — фамилия и т.д.
Значения в каждом поле относятся к одному типу данных: числа, строки символов, даты. Пересечение отдельной записи и отдельного поля называется ячейкой, а сами данные в отдельной ячейке называются значением в поле или элементом таблицы.
В простейшем случае БД состоит из одной таблицы, но обычно она включает несколько взаимосвязанных таблиц. Связь (relation) между таблицами осуществляется через общие поля. Установление связи между таблицами в реляционной БД позволяет извлекать и объединять информацию сразу из нескольких таблиц.
1.5. Системы управления базами данныхСУБД — это программное обеспечение, с помощью которого пользователи могут определять, создавать и поддерживать базу данных, а также осуществлять к ней контролируемый доступ.
По степени универсальности различаются два класса СУБД — системы общего назначения и специализированные системы.
СУБД общего назначения не ориентированы на какую-либо конкретную предметную область или на информационные потребности конкретной группы пользователей. Каждая система такого рода реализуется как программный продукт, способный функционировать на некоторой модели ЭВМ в определенной операционной обстановке. СУБД общего назначения обладает средствами настройки на работу с конкретной БД в условиях конкретного применения.
В некоторых ситуациях СУБД общего назначения не позволяют добиться требуемых проектных и эксплуатационных характеристик (производительность, занимаемый объем памяти и прочее). Тем не менее создание специализированных СУБД весьма трудоемкий процесс и для того, чтобы его реализовать, нужны очень веские основания.
В процессе реализации своих функций СУБД постоянно взаимодействует с базой данных и с другими прикладными программными продуктами пользователя, предназначенными для работы с данной БД и называемыми приложениями.
Для того чтобы СУБД успешно справлялась со своими задачами, она должна обладать определенными возможностями.
Можно дать следующую обобщенную характеристику возможностям современных СУБД.
1. СУБД включает язык определения данных, с помощью которого можно определить базу данных, ее структуру, типы данных, а также средства задания ограничений для хранимой информации. В многопользовательском варианте СУБД этот язык позволяет формировать представления как некоторое подмножество базы данных, с поддержкой которых пользователь может создавать свой взгляд на хранимые данные, обеспечивать дополнительный уровень безопасности данных и многое другое.
2. СУБД позволяет вставлять, удалять, обновлять и извлекать информацию из базы данных посредством языка управления данными.
3. Большинство СУБД могут работать на компьютерах с разной архитектурой и под разными операционными системами.
1.6. СУБД AccessДля взаимодействия пользователя с БД используются системы управления базами данных (СУБД). Одной из наиболее распространенных СУБД для персонального компьютера является СУБД Access, входящая в состав пакета Microsoft Office. В отличие от других СУБД, рассчитанных на профессиональных программистов, освоить Access и эффективно использовать его в своей работе вполне по силам и обычному пользователю, не знающему программирования. Access позволяет пользователю решать следующие задачи:
• создавать БД и вводить в нее данные;
• просматривать и редактировать содержимое таблиц;
• устанавливать связи между таблицами;
• обеспечить защиту целостности и секретность данных;
• выполнять различные запросы к данным;
• представлять информацию в виде форм и отчетов;
• вставлять в формы и отчеты рисунки и графики;
• осуществлять операции импорта и экспорта данных;
• публиковать БД на web-страницах в Internet;
• создавать собственные программы для работы с БД, содержащие меню, диалоговые окна и командные кнопки;
• обеспечивать многопользовательский режим доступа к информации, хранящейся в БД.
1.7. Объекты AccessОтдельные компоненты БД, которые используются для хранения и представления информации, называются объектами. Каждый объект имеет имя, которое может содержать до 64 символов, включая пробелы. В Access основными объектами являются: таблицы, запросы, формы, отчеты, макросы и модули. Все объекты одной БД хранятся в общем файле с расширением mdb.
Таблица используется для хранения информации в БД.
Запрос позволяет выбрать нужные данные из одной или нескольких таблиц. С помощью запросов можно модифицировать существующие таблицы, а также создавать новые таблицы.
Форма используется для ввода данных в таблицу и для просмотра в заданном формате данных из таблицы или запроса. С ее помощью можно также запустить на выполнение макрос или процедуру.
Отчет предназначен для создания документа на основе данных из таблицы или запроса. Этот документ можно распечатать или включить в документ другого приложения, например, Word или Excel.
Макрос представляет собой описание стандартных действий, которые нужно выполнить в ответ на определенное событие. Например, можно определить макрос, который в ответ на выбор некоторого элемента в одной форме открывает другую форму.
Модуль — это программа, написанная на языке Visual Basic for Applications (VBA). Использование модулей позволяет автоматизировать выполнение сложных действий, которые нельзя описать с помощью макросов.
Для создания таких объектов, как таблицы, запросы, формы или отчеты можно использовать специальные средства — мастера. Мастер задает пользователю вопросы и создает объект в соответствии с его ответами.
1.8. Запуск и завершение работыДля запуска Access достаточно сделать двойной щелчок по ярлыку
программы . Обычно при установке ярлык помещается в подменю Программы стартового меню Windows. Запустить Access можно также, сделав двойной щелчок по ярлыку файла с расширением mdb, содержащего БД Access. В этом случае БД будет автоматически загружена в Access.
Завершить работу в Access можно одним из следующих способов:
• нажать сочетание клавиш Alt+F4;
• выбрать команду Выход в меню Файл;
• щелкнуть по кнопке Закрыть окна Access.
В отличие от Word и Excel пользователю не нужно заботиться о сохранении БД перед выходом из Access. Все сделанные в ней изменения будут автоматически сохранены.

Рис. 1.4. Окно Microsoft Access
1.9. Открытие и закрытие БДПосле загрузки Access в оперативную память появляется диалоговое окно (см. рис. 1.5) и пользователю предлагается выбрать один из двух вариантов: создать новую БД или открыть существующую БД.
Вопросы, связанные с созданием новой БД, будут рассмотрены в следующей главе.
Для открытия БД, содержащейся в списке последних открывавшихся БД, нужно сделать двойной щелчок по соответствующему элементу списка. Если нужной БД в этом списке нет, то следует выбрать элемент списка Другие файлы…, найти в появившемся диалоговом окне Открытие файла базы данных файл, содержащий искомую БД, и щелкнуть по кнопке ОК.
Для открытия другой БД во время сеанса работы с Access нужно выбрать команду Открыть в меню Файл или щелкнуть по кнопке Открыть БД . Затем следует найти в появившемся диалоговом окне нужный файл
БД и щелкнуть по кнопке ОК. Открытой может быть только одна БД.
После открытия БД на экране появляется окно База данных (см. рис. 1.4), содержащее вкладки для каждого типа объектов Access. При щелчке по корешку какой-либо вкладки на экране появляется список имен имеющихся в БД объектов данного типа. При открытии БД первоначально активизируется вкладка Таблица и на экран выводится список таблиц. Чтобы открыть нужный объект, достаточно сделать двойной щелчок по его имени или щелкнуть по нему, а затем — по кнопке Открыть. Для создания новых объектов следует использовать кнопку Создать, а для модификации существующих объектов — кнопку Конструктор.

Рис. 1.5. Окно, появляющееся при запуске Access
Каждый из открытых объектов Access появляется в собственном окне. Для переключения между окнами можно использовать комбинацию клавиш Ctrl+F6 или выбрать нужное окно в меню Окно. Окно База данных в любой момент можно активизировать нажатием клавиши F11.
Для закрытия активного окна достаточно нажать комбинацию клавиш Ctrl+F4 или щелкнуть по кнопке Закрыть этого окна.
2. Построение базы данных2.1. Основные принципы проектирования БДСоздание БД должно начинаться с ее проектирования. Процесс проектирования БД включает следующие основные этапы:
1. Определение назначения БД. На первом этапе проектирования БД
необходимо определить список задач, решаемых с ее помощью, и какие данные для этого нужны.
2. Определение структуры таблиц. Это один из наиболее сложных этапов в процессе создания БД. Правильная структуризация БД позволяет быстро извлечь нужные данные, исключает их дублирование и обеспечивает целостность хранящейся информации. Процедура разделения сложных данных на несколько таблиц называется нормализацией. Специалистами по проектированию БД была разработана теория нормализации БД. Она рекомендует при проектировании таблиц руководствоваться следующими основными принципами:
• Каждая из таблиц должна содержать информацию о наборе однотипных объектов, например, сведения о студентах или итоги сдачи сессии.
• Каждому из таких наборов данных должна соответствовать отдельная таблица. Например, сведения о студентах и о полученных ими оценках в сессию должны храниться в разных таблицах. Тогда при удалении сведений об оценках студента информация о нем останется в БД.
• Информация в таблице не должна дублироваться. Не должно быть повторений и между таблицами. Это исключает возможность несовпадения информации в разных таблицах и делает работу с БД более эффективной.
3. Определение полей. Каждая таблица содержит информацию о наборе объектов одного типа. При разработке полей для таблицы необходимо помнить следующее:
• В таблице должна присутствовать вся необходимая информация о данном наборе объектов.
• Каждое поле должно содержать сведения о том или ином свойстве именно этого, а не других наборов объектов. Исключением могут являться поля, используемые для связи с другими таблицами.
• Не рекомендуется включать в таблицу данные, которые являются результатом вычисления значения некоторого выражения, так называемые вычисляемые поля.
• Информацию следует разбивать на наименьшие логические единицы. Например, в таблицу со сведениями об адресах студентов лучше включить поля Общежитие и Комната, а не общее поле Адрес. Это даст возможность осуществить в БД поиск студентов, живущих в данной комнате, или произвести сортировку записей по номерам комнат.
4. Определение ключевых полей. Для того чтобы Access мог связать данные из разных таблиц, каждая таблица должна содержать первичный ключ, или просто ключ. Это одно или несколько полей, совокупность значений которых однозначно определяет каждую запись в таблице. Наличие ключа в таблице исключает возможность появления в ней двух одинаковых записей. При создании новой таблицы Access предлагает построить ключ путем добавления дополнительного поля с уникальными значениями.
5. Определение связей между таблицами. После распределения данных по таблицам и определения ключевых полей необходимо выбрать схему для связи данных в разных таблицах. Для этого нужно определить связи между таблицами. Эти связи Access будет использовать при создании многотабличных запросов, форм и отчетов.
2.2. Создание новой базы данныхДля создания БД нужно выбрать в меню Файл команду Создать или нажать кнопку Создать базу данных на панели инструментов. Будет открыто диалоговое окно Создание. В этом окне следует выбрать диск и каталог для сохранения БД и ввести имя файла новой БД. Access автоматически добавит к нему расширение mdb. В этом файле хранятся данные, а также описания структуры таблиц, запросов, форм, отчетов и других объектов создаваемой БД. На экране появится окно новой «пустой» базы данных. Она постепенно заполняется содержимым по мере создания с помощью соответствующих мастеров или «вручную» нужных таблиц, а затем и других объектов.
С помощью специального мастера можно быстро создать БД определенного типа со всеми необходимыми таблицами, формами и отчетами. Для этого в окне Создание нужно щелкнуть по корешку вкладки Базы данных и выбрать из списка нужную БД.
2.3. Создание таблицДля создания таблицы нужно щелкнуть по корешку вкладки Таблица окна БД, а затем — по кнопке Создать. Access открывает окно Новая таблица и предлагает несколько способов создания таблицы.
2.3.1. Режим таблицыПри выборе варианта Режим таблицы появляется заготовка таблицы, содержащая 30 строк (записей) и 20 столбцов (полей) со стандартными именами Поле1, Поле2 и т.д. После заполнения таблицы Access автоматически определит тип полей в зависимости от внесенной в них информации. Для изменения имени поля нужно сделать двойной щелчок по заголовку соответствующего столбца, ввести новое имя и нажать клавишу Enter.

Рис. 2.1. Окно режима конструктора таблицы
После завершения ввода информации в таблицу нужно щелкнуть по кнопке Сохранить и дать имя созданной таблице. Затем Access предложит добавить в нее ключевое поле. Если это предложение будет принято, то в таблицу будет добавлено поле Код типа Счетчик, содержащее номера введенных записей.
Использование режима таблицы не позволяет установить нужные свойства полей. Для этого следует перейти в режим конструктора таблицы, вызываемый нажатием кнопки Конструктор окна БД.
2.3.2. Режим конструктора таблицыПри создании таблицы в этом режиме открывается окно таблицы в режиме конструктора (см. рис. 2.1). В верхней части окна находится пустой бланк таблицы, содержащей три графы, и для создания таблицы нужно заполнить, по крайней мере, две из них: Имя поля и Тип данных. Для каждого из полей будущей таблицы следует выполнить следующие действия.
1. Определить имя поля таблицы
Чтобы определить поле таблицы, нужно ввести в ячейку столбца Имя Поля имя создаваемого поля (до 64 алфавитно-цифровых символов, включая пробелы).
2. Определить тип данных поля
Для этого следует нажать клавишу Tab и перейти в столбец Тип данных. В этом столбце можно оставить выводящееся по умолчанию значение Текстовый или, раскрыв список, выбрать нужный тип данных.
Тип данных определяет вид информации, сохраняемой в поле. Например, если поле имеет тип Числовой, то Access не позволит ввести в это поле текст. По типу данных поля Access определяет не только, какие данные могут сохраняться в этом поле, но и сколько места для них надо зарезервировать. Для хранения данного типа Дата/время требуется 8 байт памяти, текстовое поле требует 1 байт для каждого символа.
Основные типы данных:
• текстовый — алфавитно-цифровые данные, до 255 байт;
• поле МЕМО — комментарии и пояснения, до 64 Кбайт;
• числовой — числовые данные;
• дата/время — значения даты и времени;
• денежный — денежные значения;
• счетчик — автоматически вставляющиеся последовательные номера;
• логический — логические значения типа Да/Нет, Истина/Ложь или Вкл/Выкл;
• объект OLE — рисунок, таблица Excel, документ Word или другие данные в двоичном формате;
• гиперссылка — строка, состоящая из букв и цифр и представляющая адрес гиперссылки.
3. Ввести описание поля (необязательно)
Для более подробного описания полей можно ввести пояснительный текст о содержащихся в поле данных в ячейку столбца Описание. Этот текст будет появляться в строке состояния при выборе данного поля в режиме таблицы или формы.
4. Задать свойства поля (необязательно)
Каждое поле имеет набор характеристик, называемых свойствами, которые задают условия хранения и отображения данных. Этот набор определяется типом данных поля. После указания типа данных Access выводит список свойств в нижней части окна конструктора и дает возможность задать нужные значения свойств поля. Настройка свойств поля позволяет, в частности, проконтролировать правильность вводимых данных, а нередко упростить сам процесс ввода.
Ниже приводится перечень и краткое описание свойств поля. Для получения подробной справки нужно щелкнуть по интересующему свойству и нажать F1.
Размер поля. Задает максимальный размер данных, которые будут храниться в поле. Текстовое поле может иметь размер от 1 до 255 символов (по умолчанию — 50 символов). Размер числового поля зависит от выбранного типа числовых данных. Access допускает следующие диапазоны значений для числовых данных.
• Байт — целые числа в пределах от 0 до 255.
• Целое (2 байта) — целые числа в пределах от -32768 до 32767.
• Длинное целое (4 байта) — целые числа в пределах от -2 147 483 648 до 2 147 483 647.
• С плавающей точкой (4 байта) — числа в пределах от -3,4*1038 до 3,4*1038 с точностью до 6 разрядов.
• С плавающей точкой (8 байт) — числа в пределах от -1,8*10308 до 1,8*10308 с точностью до 10 разрядов.
Формат поля. Это свойство поля задает формат представления его значений при выводе на экран или печать. Формат, установленный для поля при создании таблицы, используется по умолчанию в содержащей это поле форме или запросе.
Для числовых, денежных, логических полей, а также поля типа дата/время Access предоставляет список стандартных форматов. Этот список вызывается щелчком мыши (см. рис. 2.2). Пользователь может создать свой собственный формат поля (см. справку Access).

Рис. 2.2. Список стандартных числовых форматов
Дробная часть. Задает количество знаков в числах справа от запятой.
Таблица 2.1. Символы, используемые при задании маски ввода

Маска ввода. Устанавливает символы форматирования для их автоматического заполнения во время ввода данных, например, добавления скобок и дефисов в полях номеров телефонов. Маску ввода можно использовать для преобразования вводимых символов к нужному регистру. В нее можно также включить строку символов, которая будет сохраняться в этом поле или использоваться для форматирования при выводе на экран.
Перечень символов, используемых при задании маски ввода, приведен в таблице 2.1. Символы 0, А, L и & предполагают обязательный ввод в поле.
Описание маски ввода состоит из трех разделов, разделенных точкой с запятой.
Первый раздел — это собственно маска ввода, состоящая из символов маски и постоянных символов.
Второй раздел указывает, следует ли сохранять постоянные текстовые символы маски в поле. Если постоянные символы нужно включить в значение поля, то в этом разделе следует указать 0; в противном случае в этом разделе указывается 1. Если этот раздел отсутствует, то сохраняются только введенные символы.
Третий раздел задает символ — указатель позиций, заполняемых при вводе. Допускается использование любого символа. Если этот раздел отсутствует, то для представления пустых символов используется символ подчеркивания ( _ ).
Ниже приводятся описания некоторых масок ввода и примеры значений, которые могут быть в них введены (см. табл. 2.2).
Для создания маски ввода можно воспользоваться услугами мастера, который вызывается при нажатии кнопки Построить.
Таблица 2.2. Примеры масок ввода

Подпись. Задает альтернативное имя, которое будет появляться в качестве заголовка поля при просмотре таблицы или созданных на ее основе запросах, формах или отчетах. Например, если установить значение № зачетки для подписи поля Код студента таблицы Студенты, то при переходе в режим таблицы это название будет выведено в качестве заголовка данного поля.
Значение по умолчанию. Задает значение, автоматически вводящееся в поле при создании новой записи. Для числового поля значение по умолчанию равно 0, а для текстового или Memo поля — значение Null (данные в поле неизвестны).
Условие на значение. Задает логическое выражение, определяющее условие для ввода или редактирования данных. Выражение принимает значение «Истина» (True), если значение в поле удовлетворяет заданному условию, и «Ложь» (False) — в противном случае. Access не позволит ввести в поле значение, не удовлетворяющее условию, и выдаст сообщение об ошибке.
Условие на значение задается выражением, состоящим из операторов сравнения (>, >=, <, <= и т.д.) и операндов — значений, используемых для сравнения. Если выражение не содержит оператора, то Access будет использовать оператор «равно» (=). Условие может содержать несколько сравнений, разделенных логическими операторами Or (логическое сложение) или And (логическое умножение). Для отрицания некоторого условия используется логический оператор Not (логическое отрицание).
Текстовые значения должны заключаться в кавычки. Если в качестве операнда используется дата, то ее нужно заключить в символы номера (#).
Для проверки, попадает ли значение в заданный интервал, можно использовать логический оператор And или оператор Between. Чтобы проверить, содержится ли значение в заданном списке, нужно использовать логический оператор Or или оператор In. Проверку соответствия вводимого значения текстового поля или поля Memo некоторому шаблону можно осуществить с помощью оператора Like.
Для создания условия на значение поля можно использовать построитель выражений, который вызывается при нажатии кнопки Построить. Он содержит перечень операторов, функций и констант, которые можно добавлять в создаваемое выражение.
Сообщение об ошибке. Содержит текст сообщения, которое будет выведено на экран при вводе в поле данных, нарушающих условие на значение. Например, если задать для поля Оценка условие In (2; 3; 4; 5) и ввести текст сообщения: Введена неверная оценка, то при попытке ввода любого символа, отличного от вышеперечисленных цифр, Access откажется занести его в таблицу Сессия и выдаст соответствующее сообщение.
Обязательное поле. Позволяет указать, обязателен ли ввод данных в это поле. Если задать для этого свойства значение Нет и оставить поле пустым (ввести пробелы или сразу нажать клавишу Enter), то Access будет считать, что в это поле введено значение Null1. Если же это свойство имеет значение Да, то значения Null в этом поле не допускаются и при вводе новой записи в это поле обязательно должно быть введено значение.
Пустые строки. Если установить значение этого свойства равным Да, то для текстового или Memo поля будет разрешен ввод пустых строк. В противном случае Access преобразует введенные пустые строки, а также строки, состоящие только из пробелов, в строки, содержащие значение Null (при условии, что свойство Обязательное поле имеет значение Нет). Отметим, что если свойство Пустые строки имеет значение Да, то пустые строки являются допустимыми значениями данного поля вне зависимости от значения свойства Обязательное поле. Если же для свойства Обязательное поле задано значение Да, а для свойства Пустые строки значение Нет, то Access не разрешит ввод в поле пустой строки и потребует ввести непустое значение.
Пример 2.1. Предположим, что мы хотим различать следующие две ситуации:
а) неизвестно, есть ли у преподавателя домашний телефон;
б) известно, что у преподавателя нет домашнего телефона.
Тогда в таблице Преподаватели нужно установить для поля Домашний телефон свойству Обязательное поле значение Нет, а свойству Пустая строка — значение Да. При заполнении данными соответствующей записи таблицы Преподаватели в этом поле Домашний телефон следует ввести пустую строку (""), если известно, что у преподавателя нет домашнего телефона. Если же такая информация отсутствует, то в поле вводить ничего не нужно (нажать клавишу Enter). В этом случае его значением будет Null. При необходимости с помощью запроса можно будет получить список преподавателей, не имеющих домашнего телефона, либо список преподавателей, относительно которых такая информация в БД отсутствует.
Индексированное поле. Создается индекс по данному полю. Индекс указывает местоположение записей таблицы на диске и помогает Access быстро находить нужные данные. Если таблица содержит много записей и часто проводится операция поиска или сортировки по определенным полям, то ее выполнение можно значительно ускорить, создав индекс по этим полям. Access также использует индексы для установления связей между таблицами. Ключевые поля таблицы индексируются автоматически.
При индексировании поля есть две возможности. Выбор варианта Да (Совпадения не допускаются) означает, что создается уникальный индекс. В этом случае таблица не может иметь в этом поле повторяющиеся значения. При выборе варианта Да (Совпадения допускаются) создается индекс, учитывающий возможность повторения значений в этом поле.
Для создания индекса, основанного на нескольких полях (составного индекса) нужно щелкнуть по кнопке Индексы панели инструментов и ввести в столбце Индекс окна диалога имя индекса. Затем в столбце Имя поля следует указать первое поле индекса и добавить дополнительные поля в расположенные ниже строки, не вводя других имен индексов. В столбце Порядок сортировки можно изменить порядок сортировки для любого поля, входящего в создаваемый индекс.
Для удаления индекса нужно щелкнуть по кнопке Индексы, выделить строки, определяющие удаляемый индекс, и нажать клавишу Delete.
Задание свойства поля
Для задания свойства поля нужно щелкнуть мышью по изменяемому свойству и выполнить одно из следующих действий:
• если в ячейке появится кнопка раскрытия списка, нажать эту кнопку и выбрать значение из списка.
• если рядом с ячейкой появится кнопка Построить , нажать эту кнопку. После открытия окна построителя выражений ввести нужное значение или выражение.
Установленные свойства поля таблицы автоматически переносятся на использующие это поле запросы, формы и отчеты.
Создание ключевого поля
Как уже говорилось, обычно таблица содержит ключевое поле (ключ). Использование ключа дает следующие преимущества:
• уникальность записей — Access не позволяет вводить и хранить в таблице записи, имеющие одинаковое значение в ключевом поле;
• связи — используя ключ, Access устанавливает связи между таблицами;
• скорость — Access создает индекс по ключевому полю, ускоряющий поиск нужных записей и выполнение запросов;
• упорядочение — Access автоматически сортирует и отображает записи таблицы в порядке возрастания или убывания значений в ключевом поле.
Простейший способ создания ключевого поля заключается в создании поля типа Счетчик и объявлении его ключевым. Если до сохранения созданной таблицы ключ не был определен, то Access создает его именно таким способом.
Если в таблице имеется поле, содержащее значения, уникальные для каждой записи, то это поле можно объявить ключевым. Пример поля такого типа — поле Код студента в таблице Студенты, содержащее номера зачетных книжек студентов. Такое поле называется простым ключом.
В том случае, когда нельзя гарантировать уникальность значений ни одного из полей, можно создать ключ, состоящий из нескольких полей. Такое ключевое поле называется составным ключом. Пример составного ключа — совокупность полей Код студента и Код экзамена в таблице Сессия. Ни одно из этих полей по отдельности не может использоваться в этой таблице в качестве ключевого, так как каждое из них содержит повторяющиеся значения. Однако комбинация значений этих полей уникальна, поэтому их совокупность может служить ключом.
Чтобы объявить одно или несколько полей ключевыми, нужно выделить эти поля, щелкнув по ним мышью. Если полей несколько, то их выделение следует производить, держа нажатой клавишу Ctrl. Затем нужно щелкнуть по кнопке Ключевое поле панели инструментов.
Для удаления ключа достаточно выделить составляющие его поля и повторно щелкнуть по кнопке Ключевое поле. Другой способ — щелкнуть по кнопке Индексы и затем удалить индекс PrimaryKey.
Подстановка данных
Подстановка данных является очень полезной возможностью в Access. Ее использование во многих случаях позволяет существенно упростить процедуру ввода данных. Фактически подстановка сводится к созданию столбца подстановки — списка, обычно содержащего несколько столбцов. Значения одного из них, так называемого присоединенного столбца, заносятся в поле таблицы, называемое полем подстановки. Остальные столбцы служат комментариями, обеспечивая выбор нужного элемента списка.
Пусть, например, нужно ввести в таблицу Сессия результаты сдачи какого-либо экзамена. Экзаменационная ведомость содержит следующую информацию: фамилию, имя и отчество студента, его оценку и некоторые другие данные. Так как в таблице Сессия студент представлен не фамилией, а кодом, то при вводе информации приходится всякий раз по фамилии студента отыскивать его код в таблице Студенты и затем вводить найденное значение в БД.
Ясно, что при такой организации ввода значительная часть времени и усилий затрачивается не на саму операцию ввода, а на поиск нужных кодов, причем вполне возможно занесение ошибочного кода. С помощью подстановки удается заменить поиск и ввод кода студента следующей существенно более удобной процедурой: из общего списка студентов, созданного Access на базе таблицы Студенты, выбирается нужный студент, после чего его код автоматически заносится в таблицу Сессия.
Мастер подстановок
Чтобы создать подстановку для поля таблицы, проще всего использовать соответствующий мастер. Для этого нужно выбрать в качестве типа данных поля значение: Мастер подстановок. Опишем работу мастера на примере создания подстановки для поля Номер группы в таблице Занятия.
1. На первом шаге мастер предлагает указать источник данных для столбца подстановки:
• значения из таблицы или запроса;
• фиксированный список значений.
По умолчанию используется первый пункт. Поэтому, так как мы собираемся использовать в качестве источника данных таблицу Студенты, нужно просто щелкнуть по кнопке Далее.
2. Мастер просит указать таблицу или запрос, содержащие столбец подстановки. В списке таблиц нужно выбрать таблицу Студенты щелкнуть по кнопке Далее.
3. Затем нужно двойным щелчком мыши отобрать поля, используемые в подстановке: Номер группы и Название группы.
4. Так как Номер группы — ключевое поле, то Access автоматически выбирает его в качестве источника данных (присоединенного столбца) для поля подстановки. На этом шаге можно изменить ширину полей, используемых в подстановке, и указать, надо ли скрыть присоединенный столбец. Оставим без изменения установку по умолчанию: Скрыть ключевой столбец.
5. На последнем шаге зададим подпись для столбца подстановки: Студент и нажмем кнопку Готово. Access попросит сохранить таблицу, и операция создания подстановки завершена.

Рис. 2.3. Столбец подстановки
Для просмотра полученных результатов перейдем в режим таблицы щелкнув по кнопке Вид на панели инструментов. В первом столбце вместо кодов студентов появятся их фамилии. Перейдем на последнюю (пустую) запись таблицы, щелкнем по ячейке в поле Номер группы, а затем по появившейся справа кнопке. Откроется список, содержащий названия групп (см. рис. 2.3). Если выбрать щелчком мыши одну из групп, то в ячейке появится её название, а в таблицу Занятия будет занесен её код.
В качестве источника данных для столбца подстановки может использоваться фиксированный список значений. Например, можно создать столбец подстановки для поля Оценка, указав на первом шаге работы мастера, что значения берутся не из таблицы, а из списка. Затем следует создать список, содержащий перечень возможных оценок: 2, 3, 4 и 5. После завершения создания столбца подстановки значения в поле Оценка можно будет не вводить с клавиатуры, а выбирать из списка.

Рис. 2.4. Свойства поля подстановки
Чтобы изменить свойства поля подстановки, созданного с помощью мастера, нужно щелкнуть по ярлычку Подстановка. На рис. 2.4 видны свойства поля Код группы. Ниже дается их краткое описание:
• Тип элемента управления — задается представление этого поля в форме.
• Тип источника строк — указывается тип источника данных дл поля. Им может быть таблица/запрос (по умолчанию) или список значений.
• Источник строк — определяет источник данных. Если тип источника строк — таблица/запрос, то здесь указывается имя таблицы/запроса или инструкция SQL. Если тип источника строк — список значений, то указывается список элементов, разделяемых точкой с запятой.
• Присоединенный столбец — указывается номер столбца, значения из которого заносятся в поле.
• Число столбцов — задает число выводящихся столбцов.
• Заглавия столбцов — выводятся (Да) или нет (Нет) в качестве заголовков столбцов имена полей или первые элементы списка значений.
• Ширина столбцов — задается ширина выводимых столбцов (через точку с запятой). Чтобы скрыть столбец, нужно установить его ширину, равной 0.
• Число строк списка — задает максимальное число строк, выводящихся в раскрывающемся списке.
• Ширина списка — задает ширину раскрывающегося списка.
• Ограничиться списком — указывает, что в поле вводятся только значения, принадлежащие списку (Да), или разрешен ввод любых других значений (Нет). Access разрешит вводить в поле значения, не принадлежащие списку, лишь в том случае, если присоединенный столбец является первым отображаемым столбцом в списке.

Рис. 2.5. Установка свойств таблицы Заказы
Установка свойств таблицы
Кроме задания свойств полей пользователь имеет возможность задать свойства таблицы. Эти свойства относятся ко всей таблице и всем ее записям. В частности, можно задать условия на значения в записях, относящиеся не к одному, а нескольким полям таблицы, и указать текст выводимого сообщения при нарушении этих условий.
Для установки свойств таблицы нужно щелкнуть правой кнопкой мыши в окне конструктора и выбрать в появившемся контекстном меню пункт Свойства. В появившемся диалоговом окне Свойства таблицы (см. рис. 2.5) следует задать нужные свойства таблицы.
2.3.3. Мастер таблицЧтобы создать таблицу с помощью мастера, нужно в окне диалога Создание таблицы нажать кнопку Мастер. Мастер Создание таблиц предлагает на выбор различные образцы таблиц, каждая из которых содержит набор полей. Пользователь должен отобрать те поля, которые он собирается включить в свою таблицу. После этого мастер автоматически создает таблицу, предоставляя на завершающем этапе возможность пользователю создать ключевое поле и определить связи с уже существующими таблицами.
После завершения работы мастера можно перейти в режим конструктора и произвести необходимые изменения в структуре таблицы и свойствах ее полей.
2.3.4. Связывание таблицАльтернативным способом использования в Access данных из других источников (баз данных, электронных таблиц или текстовых файлов) является установление связи с внешними данными — связывание данных.
При импорте данных создается их копия в новой таблице текущей БД. После этого всякая связь с внешними данными теряется. Связывание позволяет использовать данные из внешнего файла, не импортируя их в Access, и в этом случае пользователь всегда имеет дело с самой «свежей» информацией. Формат данных файла-источника не меняется и его можно продолжать использовать в приложении, в котором он был создан.
Поэтому в тех случаях, когда внешний файл часто изменяется или используется в режиме коллективного доступа, целесообразно вместо операции импорта использовать связывание. Правда, это может привести к определенному снижению быстродействия при работе с данными, так как Access максимально эффективно работает со своей копией данных и в «родном» формате.
Операция связывания производится при помощи мастера Связь, который начинает работу при выборе пункта Связь с таблицами контекстного меню окна БД. Операция связывания таблицы из другой БД осуществляется автоматически без участия пользователя. При связывании листа или именованного диапазона электронной таблицы мастер запрашивает, содержит ли первая строка источника данных имена полей, и затем устанавливает связь.
Для связанных таблиц изменение некоторых свойств полей становится невозможным. В связанную таблицу нельзя добавить новое поле или удалить существующее поле, но можно добавить записи, а также изменить значения отдельных полей. Если связь установлена с таблицей Access, то доступна также операция удаления записей.
В Access для обозначения связанных таблиц и таблиц, хранящихся в текущей БД, используются разные значки. Для удаления связи нужно щелкнуть по значку связанной таблицы и нажать клавишу Delete.
2.4. Сохранение таблицыПосле определения всех полей таблицы нужно нажать кнопку Сохранить на панели инструментов или выбрать в меню Файл командуСохранить для сохранения макета таблицы.
Выводится окно диалога Сохранение, в которое следует ввести имя таблицы и нажать кнопку OK.
2.5. Определение связей между таблицамиПосле того как в БД созданы основные таблицы, следует указать, как они связаны друг с другом. Эти связи Access будет использовать в запросах, формах и отчетах при отборе информации из нескольких таблиц. Задание связей между таблицами позволяет также обеспечить защиту целостности данных в БД.
Связь между двумя таблицами, одна из которых является главной, а другая подчиненной, устанавливает соответствие между записями этих таблиц. Для установления связи нужно, чтобы в главной таблице существовало поле или группа полей, совокупность значений которых однозначно определяла бы запись (была уникальной). Обычно в качестве поля (группы полей) связи выбирается ключевое поле таблицы, но достаточно, чтобы оно имело уникальный индекс. В соответствие ему ставится поле (группа полей) подчиненной таблицы, называемое внешним ключом. Связь между записями устанавливается по совпадению значений в полях связи. Access анализирует значение поля связи (ключа) любой записи главной таблицы и связывает ее со всеми записями подчиненной таблицы, имеющими такое же значение внешнего ключа.
Поля связи могут иметь разные имена, но они должны иметь один тип данных и иметь однотипное содержимое. Исключение из этого правила: поле типа Счетчик можно связывать с числовым полем, имеющим в свойстве Размер поля значение «Длинное целое». Кроме того, связываемые поля числового типа должны иметь одинаковые значения свойства Размер поля.
Например, для получения информации о студентах и полученных ими оценках следует определить связь по полям Код Студента в таблицах Студенты и Сессия. Главной в этой связи будет таблица Студенты, а подчиненной — таблица Сессия. Каждой записи в главной таблице — данным о студенте — соответствует несколько (или ни одной) записей из подчиненной таблицы — информация об его оценках. Поле Код Студента в таблице Сессия является внешним ключом.
2.5.1. Типы связей между таблицами1. Связь типа «один-ко-многим»
Описанная выше связь между таблицами Студенты и Сессия —пример связи типа «один-ко-многим». Это наиболее распространенны тип связи. При таком типе связи каждой записи в главной таблице могут соответствовать одна, несколько или ни одной записи в подчиненной таблице, а каждая запись в подчиненной таблице не может иметь более одной соответствующей ей записи в главной таблице. Если запись в подчиненной таблице не имеет соответствующей ей записи в главной таблице, то значение поля связи в такой записи должно быть пусто.
2. Связь типа «один-к-одному»
При связи типа «один-к-одному» каждой записи в главной таблице может соответствовать не более одной записи в подчиненной таблице, и наоборот, каждая запись в подчиненной таблице не может иметь более одной соответствующей ей записи в главной таблице. Как и в предыдущем случае, если запись в подчиненной таблице не имеет соответствующей ей записи в главной таблице, то значение поля связи в такой записи должно быть пусто. Этот тип связи применяется реже, так как такие данные могут быть помещены в одну таблицу. Связь типа «один-к-одному» обычно используют для разделения таблиц, имеющих много полей, а также для сохранения сведений, относящихся к подмножеству записей в главной таблице. Например, такой тип связи использован при установлении связей между таблицами Студенты и Общежитие.

Рис. 2.7. Связи между таблицами в БД Деканат
3. Связь типа «многие-ко-многим»
При установлении связи между таблицами возможна ситуация, когда между ними нельзя установить отношение «главная-подчиненная» из-за того, что любой записи в одной таблице может соответствовать несколько записей из другой таблицы. Примером могут служить таблицы Студенты и Преподаватели, так как каждый студент сдавал экзамены нескольким преподавателям, а каждый преподаватель принимал экзамен у нескольких студентов. Поэтому между этими таблицами нельзя установить ни одну из описанных выше связей.
Это пример связи типа «многие-ко-многим». Access непосредственно не поддерживает такой тип связи. Но ее можно реализовать в виде двух связей типа «один-ко-многим» с помощью третьей (связующей) таблицы. В качестве такой связующей таблицы в БД Деканат используется таблица Сессия (см. рис. 2.7). Она связана как с таблицей Студенты по полю Код студента, так и с таблицей Преподаватели по полю Код преподавателя. После того как эти связи установлены, можно легко определить с помощью соответствующих запросов, у каких студентов принимал экзамены данный преподаватель или кому сдавал экзамены данный студент.
2.5.2. Создание связейДля создания связей между таблицами нужно вернуться в окно БД, закрыть все открытые таблицы и щелкнуть по кнопке Схема данных панели инструментов либо вызвать щелчком правой кнопки мыши контекстное меню и выбрать в нем пункт Схема данных. Если связи в БД определяются впервые, то будет открыто пустое окно Схема данных. В это окно нужно добавить таблицы, между которыми устанавливается связь. Для добавления таблиц следует вызвать щелчком правой кнопки мыши контекстное меню окна Схема данных и выбрать в нем пункт Добавить таблицу. Откроется диалоговое окно Добавление таблицы, содержащее список таблиц БД (см. рис. 2.8). Для добавления таблицы нужно щелкнуть по ее имени, а затем — по кнопке Добавить. После того как все таблицы отобраны, нужно закрыть это окно и вернуться в окно Схема данных.

Рис. 2.8. Окно Добавление таблицы
Чтобы определить связь между таблицами, находящимися в окне Схема данных, следует перенести с помощью мыши поле связи главной таблицы и поместить его на поле связи подчиненной таблицы. Откроется диалоговое окно Связи (см. рис. 2.9).

Рис. 2.9. Окно Связи
В левом столбце выводятся имена главной таблицы и ключа, используемого для связи, а в правом столбце — имена подчиненной таблицы и внешнего ключа.
Для изменения поля следует открыть список полей справа от его имени. Если связь производится по нескольким полям, то их имена можно добавить, используя пустые строки.
Обычно Access сам определяет тип создаваемой связи, проводя анализ полей, для которых определяется связь. Если только одно из полей является ключевым или имеет уникальный индекс, создается связь «один-ко-многим». Связь «один-к-одному» создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы.
Создавая связь, нужно настроить режим обеспечения целостности данных. Обеспечение целостности позволяет избежать ситуации, когда в подчиненной таблице имеются записи, не связанные с записями главной таблицы. Если этот режим включен, то Access не разрешит добавить в подчиненную таблицу запись, для которой не найдется связанной с ней записи из главной таблицы. Нельзя будет также удалить из главной таблицы запись, имеющую связанные с ней записи в подчиненной таблице.
Например, нельзя будет добавить в таблицу Сессия запись с кодом студента, отсутствующим в таблице Студенты. Соответственно, из таблицы Студенты нельзя удалить запись о студенте, пока в таблице Сессия содержатся сведения о его оценках.
Режим обеспечения целостности данных этой связи можно включить, если выполнены следующие условия:
• поле связи главной таблицы является первичным ключом или имеет уникальный индекс;
• связанные поля имеют один и тот же тип данных;
• обе связанные таблицы принадлежат одной базе данных Access.
Если для связи включен этот режим, то можно дополнительно указать, следует ли автоматически выполнять для связанных записей операции каскадного обновления и каскадного удаления. Если включить режим Каскадное обновление связанных полей, то при изменении значения ключа в главной таблице будут автоматически обновлены соответствующие значения в связанных записях подчиненной таблицы. При включении режима Каскадное удаление связанных записей при удалении записи из главной таблицы будут автоматически удалены связанные с ней записи в подчиненной таблице.
В том случае, когда эти режимы не включены, а режим обеспечения целостности данных включен, Access не позволит изменить значение в ключевом поле главной таблицы, а также удалить запись в главной таблице, если в подчиненной таблице имеются данные, связанные с этой записью.
После завершения операции создания связи нужно нажать кнопку ОК. Связь отображается в виде линии, соединяющей две таблицы. Если включен режим обеспечения целостности данных, то Access изобразит на конце линии, соответствующей главной таблице, цифру 1. На другом конце линии, соответствующем подчиненной таблице, будет изображен символ бесконечности ∞ для связи типа «один-ко-многим» и цифра 1 для связи типа «один-к-одному».
Если перенести с помощью мыши поле, не являющееся ключевым или не имеющее уникального индекса, на другое поле, которое также не является ключевым или не имеет уникального индекса, будет создана связь неопределенного типа. Режим обеспечения целостности данных в этом случае включить нельзя.
Любую связь можно изменить или удалить. Для изменения связи нужно сделать двойной щелчок по линии связи, и отредактировать ее в открывшемся окне Связи. Чтобы удалить связь, следует щелкнуть по ней и нажать клавишу Delete.
3. Работа с таблицейВвод, редактирование и просмотр информации в таблице может производиться либо в так называемом режиме таблицы, либо с помощью специально созданных для этих целей форм. В этой главе рассматривается работа в режиме таблицы. Для быстрого перехода в этот режим из режима конструктора достаточно нажать кнопку Вид на панели инструментов, которая служит для переключения между этими режимами. В режиме таблицы записи располагаются одна под другой по строкам, а поля отображаются одно рядом с другим по столбцам (см. рис. 1.1).
3.1. Ввод данныхПосле создания структуры таблицы можно приступать к ее заполнению. Заметим сразу, что изменять данные в таблице можно в любой момент, поэтому не нужно заранее заботиться о полноте данных, их последовательности и т.д.
Если данных в таблице еще нет, то при ее открытии пользователь получает готовый для заполнения пустой бланк следующей структуры (см.рис. 3.1).

Рис. 3.1. Ввод данных в пустую таблицу
В первой строке бланка расположены имена полей таблицы в том порядке, в котором они были введены при построении структуры таблицы. В некоторых полях имеется дополнительная информация, зависящая от свойств поля, установленных по умолчанию или измененных пользователем. Пустая строка предназначена для ввода новой (в данном случае первой) записи в таблицу. Внизу бланка расположена информация о числе записей, имеющихся в таблице на данный момент, и расположении курсора. Крайний слева столбец бланка является индикаторным. В нем отражается информация о состоянии записей таблицы, а находящийся в нем в данный момент значок означает текущую запись. Этот столбец также используется для маркировки записей. Щелкнув в нем, можно выделить всю запись целиком.
Такой же пустой бланк появится и при добавлении новых записей в таблицу, уже содержащую данные, если выполнить команды Записи/Ввод данных. После завершения операции ввода для просмотра всех записей нужно выполнить команды Записи/Удалить фильтр. Для добавления новой записи — в таблицу, содержащую данные, можно также щелкнуть по кнопке Новая запись или выполнить команды Вставка/ Новая запись.
Обычно данные в таблицу вводятся от записи к записи, а внутри записи по ее полям слева направо. Этот порядок не является обязательным.
При вводе данных в поле пользуются обычными правилами корректировки данных. В каждый момент времени вставка данных происходит в поле, в котором находится курсор. После ввода данных в поле можно перейти к следующему полю записи одним из следующих способов (при соответствующей настройке параметров Access):
нажав клавишу перемещения курсора;
нажав клавишу Tab;
нажав клавишу Enter.
Если одна из этих клавиш нажата, когда курсор находится в последнем поле вводимой записи, осуществляется переход к следующей записи. При этом Access автоматически сохраняет на диске введенную запись. В дальнейшем любую из введенных записей можно редактировать.

Рис. 3.2. Ввод новой записи
Если тип введенного значения не соответствует типу поля или нарушены условия на значение, заданные в свойствах поля, то Access не разрешит выйти из этого поля. Такая ситуация, например, возникает, если в поле типа Дата введено значение, которое Access не может интерпретировать как дату. В этом случае можно исправить допущенную ошибку или отменить ввод нажатием клавиши Esc или комбинации клавиш Ctrl + Z.
Access также не разрешит перейти к новой записи, если при вводе в ключевое поле нарушена уникальность его значений или не введены данные в поле, требующее обязательного ввода значения. Нужно исправить допущенные ошибки или отменить ввод новой записи двойным нажатием клавиши Esc или комбинации клавиш Ctrl + Z.
Рис. 3.2 характеризует ситуацию, когда в таблице уже есть введенные записи и осуществляется ввод очередной записи. Об этом говорит значок карандаша на столбце маркировки записи. Звездочкой помечена пустая запись.
После того как в таблицу введены все необходимые записи, таблицу можно просто закрыть, так как введенные записи и вся таблица сохраняются автоматически.
3.2. Перемещение по таблице
Для перемещения по таблице с помощью мыши можно использовать горизонтальную и вертикальную полосы прокрутки. В левой нижней части окна таблицы находится поле номера текущей записи (см. рис. 3.3), которое позволяет быстро перейти к нужной записи путем указания ее номера. Это поле содержит несколько кнопок перехода на первую, последнюю, следующую, предыдущую и новую запись.

Рис. 3.3. Поле номера записи
Для перемещения по таблице можно использовать и клавиатуру. Перечень клавиш прокрутки таблицы приводится в таблице 3.1, а клавиш перемещения между полями — в таблице 3.2
Таблица 3.1. Клавиши прокрутки таблицы

Таблица 3.2. Клавиши перемещения между полями таблицы

4. Создание запросов4.1. Общая характеристика запросовПри работе с БД часто возникает необходимость выбрать из нее информацию, удовлетворяющую определенным условиям, или произвести различные вычисления. Например, нужно извлечь из учебной БД Деканат сведения о студентах, сдавших сессию на «отлично», либо определить, каков средний балл экзамена по английскому языку в данной группе.
Для решения таких задач предназначены запросы. Запрос сообщает Access, какая именно информация интересует пользователя в настоящий момент. В нем можно указать, какие
• таблицы содержат нужную информацию;
• записи нужно выбрать из таблиц БД и порядок их сортировки;
• поля должны быть выданы на экран;
• вычисления следует выполнить над выбранными данными.
Запросы могут быть использованы для выделения в таблицах различных групп данных и выполнения над ними вычислений и сравнений. С их помощью можно также выполнить следующие операции:
• добавление новых записей в таблицу;
• удаление записей из таблицы;
• изменение содержимого полей таблицы.
Запрос часто используется в качестве источника данных при создании формы или отчета. Открытие такой формы или отчета автоматически приводит к выполнению соответствующего запроса. Поэтому на экране всегда присутствует самая «свежая» информация об объекте.
Результат запроса можно распечатать или передать с помощью буфера обмена в другое приложение Windows, например, вставить в виде таблицы в документ Word.
Для создания запросов обычно используется метод, суть которого заключается в следующем. Заполняется специальная форма бланк запроса. В нее включаются нужные поля и выражения, а также указываются условия отбора записей и порядок их сортировки. Тем самым создается образец желаемого результата запроса.
Access анализирует этот образец и сохраняет в виде инструкций языка структурированных запросов SQL (Structured Query Language). Именно в таком виде запрос затем используется в качестве источника данных для форм и отчетов. Отметим, что некоторые важные виды запросов нельзя получить путем заполнения бланка запроса. Для их создания необходимо написать инструкцию на SQL.
4.1.1. Типы запросов в AccessAccess позволяет создавать следующие типы запросов:
Запрос-выборка. Используется для отбора информации из таблиц идругих запросов БД. При выполнении этого запроса Access создает динамический набор записей, содержащий выбранные данные. С этим набором в большинстве случаев можно работать как с обычной таблицей. Его можно просматривать и редактировать, выбирать нужную информацию и т.д. Однако в отличие от таблицы динамический набор записей физически в базе данных не существует и хранится в памяти ЭВМ лишь во время выполнения запроса. При изменении данных в полях динамического набора Access обычно автоматически вносит сделанные изменения в таблицы, на базе которых был построен запрос.
Перекрестный запрос. Представляет данные в формате, подобном электронной таблице, на основе условий, определенных в запросе. С его помощью можно сгруппировать большой объем информации и представить его в виде, удобном для восприятия. Этот вид запроса часто применяется при построении диаграмм.
Запрос на изменение. За одну операцию выбирает записи на основе указанных условий отбора и вносит в них изменения. Существует четыре типа запросов на изменение:
• запрос на добавление — добавляет группу записей из одной таблицы в другую таблицу.
• запрос на удаление — позволяет удалить группу записей из одной или нескольких таблиц.
• запрос на обновление — вносит изменения в группу записей одной или нескольких таблиц.
• запрос на создание таблицы — позволяет создать таблицу на основе данных, содержащихся в других таблицах БД.
Запрос SQL — запрос, который может быть создан только с помощью SQL. Существует три типа таких запросов:
• запрос-объединение — позволяет объединить поля из нескольких таблиц или запросов в один набор данных;
• запрос к серверу — передает инструкции SQL удаленной базе данных;
• управляющий запрос — создает, изменяет или удаляет таблицы или индексы базы данных Access.
Запросы являются гибким, интерактивным и итеративным средством. Если запрос сформулирован неточно, его можно легко изменить и выполнить еще раз. Составляя запросы, построенные на результатах предыдущих запросов, вы можете работать с базой данных, задавая ей вопросы типа «А что, если ...?».
4.1.2. Режимы окна запросаОкно запроса может находиться в одном из трех режимов: конструктора, таблицы и SQL.
Режим конструктора предназначен для создания новых и изменения существующих запросов. Для открытия существующего запроса в режиме конструктора нужно открыть вкладку Запросы окна БД, выбрать нужный запрос из списка запросов и щелкнуть по кнопке Конструктор. В окне конструктора запросов появится выбранный запрос.
Режим таблицы служит для предварительного просмотра данных, отобранных запросом, или, в случае запроса на изменение, для просмотра данных, которые могут измениться в результате выполнения запроса.
Окно запроса может также находиться в режиме SQL, который используют для ввода или просмотра инструкций SQL при создании или изменении запроса. При создании запроса в режиме конструктора Access
автоматически создает в режиме SQL эквивалентную инструкцию SQL.
Для переключения между этими режимами следует использовать кнопку Режим , расположенную слева на панели инструментов. Нажатие этой кнопки переводит окно в режим, значок которого выведен на ней. Если нажать стрелку рядом с кнопкой, то раскроется список доступных режимов и можно выбрать нужный режим.
4.1.3. Создание запросаПрежде чем приступить к созданию запроса, следует продумать ответы на следующие вопросы:
• какая таблица или таблицы содержит нужную информацию,
• как связать эти таблицы,
• какой тип запроса использовать,
• каким условиям должны удовлетворять отбираемые записи,
• каким должен быть порядок их сортировки,
• какие вычисления нужно выполнить над отобранными данными,
• какое имя должен получить создаваемый запрос.
Для создания запроса нужно щелкнуть по корешку Запросы окна БД, а затем по кнопке Создать над списком запросов. На экране появится диалоговое окно Новый запрос, и Access предоставит вам выбор: создать запрос самому в режиме конструктора или воспользоваться помощью одного из мастеров по разработке запросов.
С помощью мастеров можно создать запросы следующих типов:
• Простой запрос. Создается запрос на выборку из указанных полей.
• Перекрестный запрос. Выводит данные в формате электронной таблицы.
• Поиск повторяющихся записей. Осуществляется поиск повтор- яющихся записей в указанной таблице или запросе.
• Поиск записей, не имеющих подчиненных. Находит все записи в главной таблице, не имеющие связанных с ними записей в подчиненной таблице.
Использование мастера Простой запрос
Для быстрого создания запроса можно воспользоваться мастером Простой запрос. Этот мастер позволяет не только отобрать нужные поля из таблиц или ранее созданных запросов, но также суммировать, вычислять средние значения и находить другие статистические характеристики определенных групп записей.
После выбора этого варианта появится диалоговое окно Создание простых запросов. В раскрывающемся списке Таблицы/запросы нужно выбрать таблицу или запрос и с помощью двойного щелчка отобрать поля, которые будут содержаться в создаваемом запросе. Если в запросе используются поля из нескольких таблиц или запросов, то эту операцию отбора полей следует повторить нужное число раз. Отметим, что мастер не разрешит использовать таблицы, между которыми не были установлены связи.
Затем нужно выбрать тип создаваемого запроса. Если нужно, чтобы отображались все записи, щелкните на переключателе Подробный. Для вывода только общей информации о записях щелкните на переключателе Итоговый и затем по кнопке Итоги. После этого укажите, какие итоговые значения необходимо вычислять, и щелкните по кнопке ОК.
В последнем диалоговом окне нужно ввести имя запроса и выбрать дальнейшие действия: просмотр результатов выполнения запроса в режиме таблицы или изменение его структуры в режиме конструктора. Затем следует щелкнуть по кнопке Готово.
Использование режима Конструктор
Больше возможностей для создания запроса предоставляет конструктор запросов. Чтобы создать запрос с его помощью, нужно выбрать пункт Конструктор в диалоговом окне Новый запрос. На экране появится окно Запрос на выборку, а поверх него окно Добавление таблицы со списком таблиц, хранящихся в текущей БД. По мере того как вы будете выбирать нужные таблицы, Access помещает списки их полей в верхней части окна запроса. Для выбора таблицы достаточно дважды щелкнуть мышью по ее имени или щелкнуть сначала по ее имени, а затем по кнопке Добавить. Если в создаваемом запросе вы хотите использовать поля из ранее созданного запроса, то нужно щелкнуть по ярлыку Запросы или Запросы и таблицы. В этом случае список таблиц будет заменен или, соответственно, расширен списком уже существующих запросов, из которого можно выбрать нужный запрос.
После завершения отбора нужных таблиц и запросов следует нажать кнопку Закрыть. Чтобы снова открыть окно Добавление таблицы, нужно щелкнуть по кнопке Добавить таблицу , расположенной на панели инструментов, или выбрать команду Добавить таблицу в меню Запрос.

Рис. 4.1. Окно запроса в режиме конструктора
Если вы включили в запрос несколько таблиц, и между ними были установлены связи, то Access автоматически показывает их, рисуя линии объединения между связанными полями. Линию объединения можно создать самостоятельно, переместив ключевое поле главной таблицы на связываемое с ним поле подчиненной таблицы.
4.2. Работа в окне конструктора запросовОкно конструктора запросов разделено на две части (см. рис. 4.1). Верхняя часть содержит списки полей таблиц или запросов, включенных в данный запрос. В нижней части находится бланк запроса, заполняя который вы указываете параметры создаваемого запроса. Каждый столбец бланка запроса соответствует одному из полей запроса, которое может быть полем из списка, а также вычисляемым или итоговым полем.
Для каждого поля можно указать в соответствующих строках бланка порядок сортировки записей по этому полю; будет ли оно включено в динамический набор — результат запроса, а также можно определить условия отбора его значений. Внизу окна находится полоса прокрутки полей запроса.
Бланк запроса содержит еще две строки, которые изначально обычно не видны на экране. Это строки Имя таблицы и Групповая операция. Чтобы отобразить их на экране, нужно выбрать в меню Вид соответствующие команды.
4.2.1. Добавление или удаление таблицы/запросаЧтобы добавить таблицу или запрос в окно конструктора, достаточно щелкнуть правой кнопкой мыши в пустом месте верхней части окна запроса и выбрать в контекстном меню пункт Добавить таблицу. Затем выбрать в появившемся окне Добавление таблицы нужную таблицу или запрос.
В окне конструктора запросов не должны находиться посторонние (не используемые в создаваемом запросе) таблицы. Даже если такая таблица не связана с другими таблицами, само ее наличие в окне конструктора приведет к созданию неверного запроса.
Для удаления таблицы или запроса из окна конструктора нужно выделить удаляемую таблицу или запрос, щелкнув по списку полей и нажать клавишу Delete. Поля, добавленные в бланк путем переноса с помощью мыши из списка полей, также будут удалены из запроса.
4.2.2. Включение полей в бланк запросаВ бланк запроса следует включать только те поля, данные из которых выводятся на просмотр, обновляются или используются для задания условий отбора, группировки и сортировки.
Чтобы включить поле из списка полей таблицы или запроса в бланк запроса, достаточно дважды щелкнуть мышью по этому полю. Можно также перетащить его в нужное место бланка.
Для добавления сразу нескольких полей нужно выделить в списке эти поля, держа нажатой клавишу Ctrl, и затем перенести всю выделенную группу с помощью мыши в бланк запроса. Если добавляемые поля в списке идут подряд, то для их выделения можно, держа нажатой клавишу Shift, щелкнуть мышью по первому полю, а затем по последнему полю.
Если в запрос нужно включить все поля из списка, то в этом случае можно просто перенести в бланк запроса символ звездочки (*), расположенный над списком полей. Преимущество этого способа состоит в том, что при использовании * изменения в структуре полей базовой таблицы автоматически отражаются в запросе, созданном таким способом. В частности, все поля, удаленные из базовой таблицы, будут автоматически удалены из запроса.
Для полей, добавленных в запрос с помощью *, нельзя задавать условия отбора или сортировки. В этом случае следует явно добавить требуемые поля в запрос, отменив для них вывод на экран.
4.2.3. Добавление столбца в бланк запросаЧтобы вставить пустой столбец в бланк запроса, нужно выбрать любое место в столбце, слева от которого требуется добавить новый столбец, и выбрать пункт Столбцы в меню Вставка.
4.2.4. Удаление столбца из бланка запросаНужно выделить удаляемый столбец. Для этого следует установить курсор мыши в область выделения (над заголовком поля), добиться, чтобы он принял форму жирной направленной вниз стрелки, и щелкнуть мышью. Удаляемый столбец окрасится в черный цвет. Затем нужно нажать клавишу Delete. Для удаления нескольких идущих подряд столбцов достаточно распространить на них выделение перемещением мыши с нажатой левой кнопкой и затем нажать клавишу Delete. Можно также использовать команду Удалить столбцы в меню Правка.
4.2.5. Перемещение поля в бланке запросаВключите режим Сдвиг одновременным нажатием клавиши Ctrl и F8. Затем выделите поле, которое требуется переместить. Для перемещения выделенного поля используются клавиши ← и →.Чтобы выключить режим Сдвиг, нужно нажать на клавишу Esc. Аналогично можно переместить группу идущих подряд полей.
4.2.6. Добавление вычисляемого поляВ бланк запроса можно добавить вычисляемые поля. Вычисляемые поля — это временные поля, создаваемые в динамическом наборе записей при выполнении запроса. В них заносятся результаты вычислений над данными из полей таблиц, включенных в запрос. Правила вычисления значения поля задаются с помощью выражения.
Для создания вычисляемого поля нужно щелкнуть на пустой ячейке строки Поле. Затем следует ввести в эту ячейку имя создаваемого поля, двоеточие и выражение, вычисляемое в этом поле. Если элементом выражения является поле, его имя нужно заключить в квадратные скобки. Арифметические операторы записываются обычным образом, а для объединения текстовых значений нужно использовать оператор &.
После ввода выражения следует щелкнуть за пределами ячейки. Если Access обнаружит ошибку, то будет выведено соответствующее сообщение. Для модификации выражения нужно щелкнуть по содержащей его ячейке и внести изменения. Чтобы просмотреть введенное выражение целиком, нужно нажать клавиши Shift+F2 или щелкнуть правой кнопкой мыши по содержащей его ячейке и выбрать в контекстном меню пункт Масштаб. Содержимое ячейки появится в отдельном окне Область ввода.
Примеры вычисляемых полей:
ФИО: [Фамилия] & " " & [Имя] & " " & [Отчество];
Стоимость заказа: [Цена] * [Количество];
Год рождения: Year([Дата рождения]);
Цена со скидкой: [Цена]*0,9.
Если при создании вычисляемого поля не указать его имя, а ограничиться только вводом выражения, то Access сам даст имя новому полю. Это имя можно легко изменить (см. п. 4.2.7).
При создании сложных выражений следует использовать построитель выражений. Для вызова построителя нужно щелкнуть правой кнопкой мыши на ячейке Поле, куда необходимо поместить вычисляемое поле и выбрать пункт Построить, или щелкнуть по ячейке Поле, а затем по кнопке Построить на панели инструментов.
4.2.7. Изменение имени поля в запросеПоле запроса можно переименовать, чтобы точнее описать его содержимое. Обычно эта операция производится при определении нового вычисляемого поля, а также при расчетах различных итоговых значений по данным существующего поля. В таких случаях Access по умолчанию использует имена типа «ВыражениеN» или «Sum_Количество», которые можно легко заменить более содержательными именами.
Чтобы переименовать поле, включенное в запрос, нужно установить указатель слева от первой буквы имени этого поля и ввести новое имя, а затем двоеточие. Например, для замены старого имени поля Дата рождения на новое имя Год рождения нужно ввести в строку Поле соответствующего столбца бланка запроса выражение Год рождения: Дата рождения.
Для изменения имени вычисляемого или итогового поля нужно просто заменить расположенное левее двоеточия старое имя на новое имя.
Другим способом изменения имени поля является указание нового имени в свойстве Подпись данного поля.
При изменении имени поля Access покажет новое имя как заголовок столбца запроса в режиме таблицы. Новое имя будет также использовано в любой форме (отчете), созданной на основе этого запроса.
4.2.8. Отображение/скрытие поля в результатах запросаВ бланк запроса можно добавить поле, используемое для задания условия отбора или порядка сортировки, без отображения данных из этого поля в результатах запроса. Для этого нужно установить флажки в строке «Вывод на экран» бланка для тех полей, которые требуется отображать, и снять флажки для неотображаемых полей. Последние поля не будут включены в результирующий динамический набор.
4.2.9. Изменение ширины столбца в бланке запросаПеремещайте указатель к границе области выделения столбца, ширину которого нужно изменить, до тех пор пока указатель не примет вид двусторонней стрелки. Затем переместите границу столбца в нужном
направлении.
Чтобы быстро установить оптимальную ширину столбца (по размеру данных), достаточно установить указатель на правую границу изменяемого столбца и дважды щелкнуть мышью. Если было выделено несколько столбцов, то после выполнения этой операции для каждого из них будет установлена оптимальная ширина.
4.2.10. Сортировка результатов запросаОбычно результаты запроса появляются на экране в том же порядке, в котором записи находились в базе данных. Для удобства просмотра их можно отсортировать по алфавиту или в числовом порядке в зависимости от типа поля сортировки.
Чтобы выбрать порядок сортировки, установите указатель мыши в ячейку Сортировка под полем, значения в котором нужно отсортировать, щелкните мышью и раскройте появившийся список. Вы можете выбрать из этого списка тип сортировки «По возрастанию» (0 – 9, А – Я) или «По убыванию» (9 – 0, Я – А).
Сортировку можно задать сразу для нескольких полей. В этом случае порядок сортировки определяется их положением в бланке запроса. Сначала сортируются данные в крайнем левом поле и далее слева направо.
4.2.11. Вставка или удаление строки условий отбораДля того чтобы вставить строку условий отбора в бланк запроса, нужно щелкнуть мышью по строке, над которой должна появиться новая строка, а затем выбрать в меню Вставка пункт Строки.
Для удаления строки условий отбора нужно щелкнуть мышью по удаляемой строке, а затем выбрать в меню Правка пункт Удалить строки.
4.2.12. Установка свойств запросаКаждый запрос имеет свойства, которые определяют его поведение и вид полученного результата. Чтобы задать свойства запроса, нужно вызвать бланк свойств. Для этого следует щелкнуть правой кнопкой мыши, установив ее указатель в окне запроса вне бланка запроса и списков полей, и выбрать в контекстном меню пункт Свойства. На экране появится бланк свойств запроса. Ниже описаны некоторые из них.
а) Вывод всех полей
Указывает, какие поля должны быть включены в результат запроса: все поля из базовых таблиц или только те, для которых установлен флажок Вывод на экран в бланке запроса. Если вы создаете запрос для формы и хотите, чтобы все поля из всех таблиц были в ней доступны, то установите для свойства Вывод всех полей значение «Да».
б) Набор значений
Указывает, сколько записей должно быть возвращено запросом. Значением свойства Набор значений является целое число или число процентов. Например, для вывода 10 первых записей в качестве значения свойства Набор значений следует ввести число 10, а для вывода 10 процентов от общего числа записей — 10%.
Обычно это свойство используется, если нужен не весь результат запроса, а лишь записи, имеющие самые большие или самые маленькие значения в данном поле. В этом случае в ячейке Сортировка, соответствующей этому полю, следует выбрать «по убыванию», если нужно отобразить наибольшие значения, и «по возрастанию» — при выводе на экран наименьших значений.
в) Уникальные значения
Указывает, следует ли возвращать повторяющиеся значения полей. Если значение этого свойства «Да», то Access возвращает только те записи, у которых значения всех полей, изображаемых в режиме таблицы, являются уникальными. Если значение «Нет», то возвращаются все записи (используется по умолчанию).
4.2.13. Установка свойств полей запросаКроме свойств запроса можно задать свойства любого из его полей, кроме * и полей, для которых не установлен флажок Вывод на экран. Для вызова бланка свойств поля следует щелкнуть по нему правой кнопкой мыши, а затем выбрать пункт Свойства в контекстном меню.
Чаще всего бланк свойств поля запроса используется для изменения формата изображения данных в запросе. По умолчанию поле в запросе наследует формат соответствующего ему поля базовой таблицы. Чтобы изменить этот формат, нужно щелкнуть по ячейке Формат поля, открыть список стандартных форматов и выбрать нужный формат или задать пользовательский формат.
В качестве формата для текстового поля можно ввести символ > или <, чтобы его содержимое выводилось прописными или строчными буквами. Для вывода дополнительных символов в ячейку Формат поля следует ввести @ и нужные символы.
С помощью задания соответствующего формата можно обеспечить вывод сообщения в том случае, когда в поле отсутствует значение.
Например, чтобы при выводе сведений о преподавателях в случае пустого (Null) значения в поле Домашний телефон появлялось слово неизвестно, а в случае пустой строки ("") слово нет, следует задать формат: @; "неизвестно"; "нет".
Для поля типа Дата/время можно, в частности, использовать следующие форматы вывода его значений:
ddd — сокращенное название дня недели;
dddd — полное название дня недели;
mmm — сокращенное название месяца;
mmmm — полное название месяца;
q — номер квартала в году;
yy — последние две цифры номера года;
yyyy — полный номер года.
Свойство Подпись позволяет определить новое имя поля. Оно заменит при просмотре результатов запроса старое имя. Новое имя будет также использовано при создании формы (отчета), основанной на этом запросе.
Пример 4.1. Для того чтобы при отборе записей из таблицы Студенты появлялась информация не о дате, а о годе рождения, достаточно внести следующие изменения в свойства поля День рождения: в ячейку Формат поля ввести формат даты «yyyy», а в ячейку Подпись — текст «Год рождения».
4.2.14. Предварительный просмотр результатов запросаЧтобы просмотреть результаты запроса, находясь в режиме конструктора, нужно выбрать в меню Вид пункт Режим таблицы или нажать кнопку Вид на панели инструментов. На экране появится созданный динамический набор данных.
Чтобы снова вернуться в режим конструктора, нужно нажать кнопку Вид на панели инструментов или выбрать в меню Вид пункт Конструктор.
4.2.15. Выполнение запросаЧтобы выполнить ранее созданный запрос, нужно найти его в списке запросов, находящихся во вкладке Запросы окна БД, и сделать двойной щелчок мышью по его значку или имени.
Для выполнения запроса, находящегося в окне конструктора, нужно нажать кнопку Запуск на панели инструментов. Чтобы остановить выполнение запроса, следует нажать клавиши Ctrl+Break.
4.2.16. Сохранение запросаДля сохранения запроса нужно выбрать команду Сохранить в меню Файл или нажать кнопку Сохранить на панели инструментов. Если сохраняется новый запрос, Access автоматически предлагает для него стандартное имя. Лучше заменить его более содержательным именем и нажать кнопку ОК. Сохраненный запрос становится частью БД. Его имя не должно совпадать с именем какой-либо таблицы БД.
4.3. Отбор записей в однотабличных запросахОбычно в результате выполнения запроса нужно найти только те записи, которые удовлетворяют некоторым условиям отбора. Ввод условия отбора в запросе похож на ввод условия на значение для поля. Сначала рассмотрим случай, когда в создании запроса участвует одна таблица.
4.3.1. Точное совпадение значений полейПростейший критерий отбора предполагает извлечение из исходной таблицы всех записей, имеющих одинаковые значения в одном или нескольких полях. В этом случае для создания соответствующего условия отбора нужно включить в бланк запроса поля, значения в которых должны совпадать, и напечатать в них значения-шаблоны в строке Условие отбора. Тем самым будет создан образец, с которым Access при выполнении запроса будет сравнивать все записи исходной таблицы. В результирующий динамический набор данных попадут лишь те записи, значения соответствующих полей которых совпали со значениями полей этого образца.
При вводе текстовых значений регистр символов несущественен. После завершения ввода текста Access автоматически заключает его в кавычки.
Пример 4.2. Требуется извлечь из таблицы Студенты сведения девушках группы 9701. Для этого достаточно перенести в первое поле бланка запроса звездочку *, задающую вывод всех полей. В поле Группа бланка запроса нужно ввести в строке Условия отбора значение-шаблон «9701», а в поле Пол — значение-шаблон "ж" и отменить вывод на экран содержимого этих полей. Созданный бланк запроса будет иметь следующий вид (см. рис. 4.2).

Рис. 4.2. Пример бланка запроса с использованием шаблонов
4.3.2. Использование нескольких строк условийПри создании сложных запросов может возникнуть ситуация, когда описание критерия отбора занимает не одну, а несколько строк в бланке запроса. В этом случае Access последовательно анализирует каждую из строк и включает в итоговый набор те записи, для которых эти условия выполняются. Если строка содержит несколько ячеек с условиями отбора, то в набор попадают лишь те записи, которые удовлетворяют одновременно всем условиям в этой строке. В результате в итоговый набор будут включены все записи, удовлетворяющие хотя бы одной из строк условий.
Пример 4.8. Предположим, что нам нужно получить списки студентов групп 9701 и 9703, родившихся в 1972 году. Это можно сделать, создав запрос следующего вида:
Первая строка условия отбора включает в результат запроса список студентов 9701 группы, родившихся в 1972 году, а вторая строка — список студентов 9703 группы того же года рождения. Задание сортировк позволяет получить итоговый список, отсортированный сначала по группам, а внутри каждой группы — по фамилиям студентов. Отметим, что условие Like "*.*.72" необходимо указать в обеих строках, так как, если его не повторить во второй строке, то в итоговый список попадут все студенты 9703 группы.
В данном примере получить такой же результат можно, используя лишь одну строку условия отбора и один из операторов Or или In. Например, в поле Группа можно ввести условие "9701" Or "9703", а в поле Дата рождения — условие Like "*.*.72". Однако если поставлена задача получить списки студентов этих групп, родившихся в разные годы, то соответствующий запрос к таблице Студенты обязательно будет содержать более одной строки условий.
4.3.3. Использование вычисляемых полейВ ряде случаев для отбора записей необходимо включить в запрос вычисляемое поле и ввести условие, использующее значения этого поля.
Пример 4.9. Таблица Заказы содержит сведения о заказанных товарах. В частности, поле Количество содержит информацию о числе заказанных товаров, а поле Цена — цену товара. Чтобы выбрать из таблицы сведения о заказах, стоимость которых не ниже 500 руб., следует включить в запрос нужные поля, а также создать вычисляемое поле Стоимость: [Количество]*[Цена] и ввести в него условие >=500.
4.3.4. Использование ссылки на элемент управленияВ условии отбора можно сослаться на текущее значение элемента управления открытой формы.
Пример 4.11. Пусть форма Список жильцов содержит поле с именем Номер комнаты, значениями которого являются номера комнат в студенческом общежитии. Чтобы создать запрос, выбирающий из таблицы Общежитие коды студентов, живущих в данной комнате, можно поступить так: поместить в бланк запроса поля: Код студента и Комната, затем ввести в поле Комната условии
Forms![Список жильцов]![Номер комнаты].
Если открыть форму Список жильцов и выбрать номер какой-либо комнаты, а затем запустить на выполнение созданный запрос, то на экране появятся коды студентов, живущих в этой комнате.
Если информация для запроса содержится в поле со списком Номер комнаты, то условие отбора запроса должно иметь следующий вид:
Forms![Список жильцов]![Номер комнаты].[Text].
4.3.5. Использование параметров в условиях отбораВ условиях отбора можно использовать не только конкретные значения, но и параметры. Перед выполнением запроса, содержащего один или несколько параметров, Access каждый раз будет запрашивать конкретные условия отбора и затем произведет отбор нужной информации. Используя параметры, можно заменить несколько однотипных запросов к данным одним запросом.
Чтобы задать параметр, нужно ввести в строку Условие отбора вместо конкретного значения произвольный текст, заключенный в квадратные скобки [ ]. Этот текст Access рассматривает как имя параметра и выводит его в специальном диалоговом окне при выполнении запроса. Поэтому в качестве имени параметра лучше использовать содержательную фразу, причем имя каждого параметра должно быть уникальным.
Для каждого параметра запроса можно указать тип данных. Эту информацию Access использует для проверки введенного значения. Например, если параметр определен как числовой, то Access не разрешит ввести значение, содержащее буквы. По умолчанию все параметры запроса имеют текстовый тип.
Для задания типа данных параметра нужно выбрать пункт меню Запрос, а затем Параметры или вызвать щелчком правой кнопки мыши контекстное меню запроса и выбрать в нем пункт Параметры. Access выведет на экран диалоговое окно Параметры запроса. В этом окне нужно ввести в столбце Параметр имя того параметра, тип которого следует изменить, точно в том же виде, в каком оно было введено в бланк запроса, но без квадратных скобок. В столбце Тип данных следует выбрать из раскрывающегося списка нужный тип данных параметра. После того как определены типы всех параметров, нужно нажать кнопку ОК.
При выполнении запроса Access попросит ввести одно за другим значения для каждого из параметров, используя для ввода диалоговые окна Введите значение параметра. После ввода всех значений запрос будет выполнен и на экране появится результирующий набор записей.

Рис.4.4. Пример запроса с параметром
Пример 4.12. Чтобы получить список студентов любой учебной группы, используем запрос с параметром. Для его создания нужно включить в бланк запроса к таблице Студенты поля Группа, Фамилия и Имя. В строке Условие отбора в поле Группа следует ввести текст Введите номер группы и заключить его в квадратные скобки (см. рис. 4.4).
При выполнении запроса появится диалоговое окно с приглашением ввести номер группы. После ввода номера и нажатия кнопки ОК Access выполнит запрос и создаст требуемый список группы.
Параметры могут использоваться в условиях отбора совместно с шаблонами. Например, для нахождения всех студентов, фамилия которых начинается с данной буквы, нужно включить в бланк запроса к таблице Студенты в поле Фамилия условие Like [введите букву] & "*".
4.3.6. Использование в условиях отбора подчиненного запросаИногда условие отбора использует значение, которое можно получить в результате выполнения другого запроса, называемого подчиненным. В этом случае можно поступить следующим образом:
1. Создать подчиненный запрос.
2. Перейти в режим SQL и скопировать инструкцию SQL, описывающую подчиненный запрос в буфер обмена.
3. Создать основной запрос и перейти в нужную ячейку строки Условие отбора.
4. Ввести требуемый условный оператор (например, > или <), а затем вставить содержимое буфера обмена, заключив его в круглые скобки.
Отметим, что подчиненный запрос должен иметь в качестве результата значение, т.е. одну запись, содержащую одно поле. Подчиненный запрос может использоваться в выражении, определяющем вычисляемое поле.
Пример 4.13. Пусть нужно найти студентов, которые не старше студента 9702 группы Иванова, причем известно, что у него в группе нет однофамильцев. В этом случае можно создать подчиненный запрос (см. рис. 4.5) к таблице Студенты, результат которого — дата рождения Иванова (27 марта 72 года).

Рис. 4.5. Подчиненный запрос, дающий дату рождения Иванова
Соответствующая инструкция SQL SELECT выглядит так:
SELECT Студенты.[Дата рождения] FROM Студенты WHERE (((Студенты.Группа)=«9702») AND ((Студенты.Фамилия) =«иванов»));
Она содержит следующую информацию:
• список выбираемых полей (находится после ключевого слова SELECT);
• таблицу, используемую в запросе (указывается в предложении FROM);
• условие отбора записей (указывается в предложении WHERE).

Рис. 4.6.Основной запрос, использующий инструкцию SQL
Эту инструкцию нужно скопировать в буфер обмена и создать еще один запрос к таблице Студенты, содержащий поля Фамилия, Имя и Дата рождения. В поле Дата рождения следует вставить из буфера обмена сохраненную инструкцию SELECT, заключив ее в круглые скобки и поставив в начале условия знак >=.
Условие отбора в поле Дата рождения будет выглядеть так: >= (SELECT Студенты.[Дата рождения] FROM Студенты WHERE (((Студенты.Группа)="9702") AND ((Студенты.Фамилия) ="иванов"));

Рис. 4.7. Итоговый список студентов
В результате выполнения этого запроса будет получен требуемый список студентов (см. рис. 4.7). Отметим, что этот запрос даст правильный результат лишь в том случае, если у Иванова нет однофамильцев. Если это условие не выполнено, то необходимо использовать для отбора даты рождения не фамилию, а код студента.
4.4. Перекрестные запросыПерекрестный запрос — это итоговый запрос специального типа, выводящий результат в виде перекрестной таблицы, похожей на электронную таблицу.
Для создания перекрестной таблицы нужно указать:
• заголовки строк — одно или несколько полей, значения которых будут использованы в качестве заголовков строк таблицы;
• заголовки столбцов — поле, значения которого будут использованы в качестве заголовков столбцов;
• значения — числовое поле, значения которого будут использованы для проведения итоговых расчетов;
• групповую операцию — групповую функцию, задающую тип итоговых расчетов, или выражение, содержащее групповые функции.
Построение перекрестной таблицы производится примерно по такой схеме. Access производит группировку данных по групповым полям, которые также служат заголовками ее строк и столбцов. Групповая операция проводится над числами, содержащимися в поле значений. Итоговое значение для данной группы помещается в ячейку таблицы, находящуюся на пересечении строк и столбца, названия которых берутся из соответствующих групповых полей. Часть ячеек перекрестной таблицы могут оказаться пустыми (содержащими значение Null). Это обстоятельство необходимо учитывать при создании выражений, включающих поля перекрестной таблицы. Перекрестные запросы обычно используются при создании диаграмм и отчетов. Сохранить перекрестную таблицу в виде обычной таблицы Access с помощью запроса на создание таблицы нельзя.
4.4.1. Мастер Создание перекрестных таблицДля создания перекрестного запроса можно воспользоваться соответствующим мастером. При этом нужно иметь в виду, что он создает перекрестный запрос на базе полей одной таблицы/запроса, причем группировка проводится по всем записям. Если для создаваемого
перекрестного запроса такая таблица/запрос не существует, то следует сначала создать запрос, содержащий всю необходимую информацию, и лишь затем воспользоваться услугами мастера. Рассмотрим работу мастера на следующем примере из БД Книги.
Пример 4.14. Требуется создать запрос, содержащий сведения о количестве книг, проданных продавцами в каждом квартале и за весь 1997 год.
Так как нужная информация находится в разных таблицах, создадим запрос, который будет использован мастером в качестве источника данных при построении перекрестной таблицы. Для этого поместим в окно конструктора таблицы Продавцы и Заказы. Access свяжет их по полю Код продавца. В бланк запроса включим поле Код продавца, а также поля Количество и Дата отправки со сведениями о количестве книг в заказе и дате его отправки. Создадим вычисляемое поле Продавец, содержащее фамилии и имена продавцов. Для этого в пустую ячейку строки Поле введем выражение Продавец: [Фамилия] & " " & [Имя]. В поле Дата отправки введем условие отбора заказов, выполненных в 1997 году, и сохраним запрос под именем «Заказы 1997 года».

Рис. 4.8. Бланк запроса с информацией для мастера
Для вызова мастера нужно выбрать пункт Перекрестный запрос в окне Новый запрос. Работа мастера состоит из следующих шагов.
1. Мастер предлагает указать таблицу или запрос, поля которых будут использованы в создаваемом запросе. В списке запросов нужно найти запрос «Заказы 1997 года» и щелкнуть по кнопке Далее >.
2. Мастер просит указать поля, значения которых будут использованы в качестве заголовков строк (не более трех). Выберем в левом окне, содержащем список доступных полей, поля Код продавца и Продавец, перебросим их с помощью кнопки > в правое окно и перейдем к следующему окну диалога.
3. Мастер просит указать поле, значения которого будут использованы в качестве заголовков столбцов. Выберем поле Дата отправки.
4. Так как выбранное поле имеет тип Дата/Время, то мастер предлагает выбрать временной интервал, с которым нужно сгруппировать данные в этом поле. Выберем Квартал.
5. На этом этапе мастер просит указать итоговое поле и групповую функцию. Выберем поле Количество, а в качестве групповой функции укажем Sum. Здесь же предоставляется возможность указать, нужно ли включать в таблицу итоговое значение по каждой строке. Поскольку мы хотим включить в таблицу данные об общем числе книг, проданных каждым продавцом, нужно оставить «галочку» во флажке с подписью Да. В противном случае «галочку» нужно убрать.
6. В заключение мастер предлагает дать имя созданному запросу и указать действия после его создания. Назовем запрос «Работа продавцов в 97 году» и выберем просмотр результатов запроса. Созданная таблица имеет лишь один недостаток: столбец с итогами работы каждого продавца за год получил название Итоговое значение Количество. Для его устранения перейдем в режим конструктора и заменим имя соответствующего поля в бланке запроса на имя За год. Затем перейдем в режим таблицы и переместим этот столбец в конец таблицы.
Сохраним все сделанные изменения.
При создании перекрестной таблицы на базе многотабличного запроса возможна ситуация, когда в него включены одноименные поля, принадлежащие различным таблицам, например, поля Фамилия из таблиц Продавцы и Покупатели. В этом случае перед использованием мастера такие поля следует переименовать. Если этого не сделать, то Access создаст неработоспособный перекрестный запрос.
4.4.2. Создание перекрестного запроса без помощи мастераДля создания перекрестного запроса вручную необходимо:
1. Выбрать в окне Новый запрос пункт Конструктор.
2. Включить в верхнюю часть окна конструктора все таблицы и запросы, данные которых будут использованы в создаваемом запросе.
3. На панели инструментов нажать кнопку Тип запроса и выбрать Перекрестный. В бланке запроса появятся две дополнительные строки: Групповая операция и Перекрестная таблица.
4. Добавить поля в строку Поле в бланке запроса и создать, если нужно, дополнительно вычисляемые поля. Все поля вначале будут получать в строке Групповая операция значение Группировка.
5. Для полей, значения которых будут использованы в качестве заголовков строк, нужно в строке Перекрестная таблица указать значение Заголовки строк и оставить в строке Групповая операция значение Группировка.
6. Для поля, значения которого будут использованы в качестве заголовков столбцов, нужно в строке Перекрестная таблица задать значение Заголовки столбцов и оставить в строке Групповая операция значение Группировка.
7. Для поля, значения которого будут использованы при создании перекрестной таблицы, нужно в строке Перекрестная таблица задать значение Значения, а в строке Групповая операция выбрать групповую функцию, используемую для вычисления значений перекрестной таблицы (например, Sum или Count).
8. Чтобы отобрать нужные заголовки строк или столбцов, следует ввести выражение, задающее условие отбора в строку Условие отбора для соответствующих полей-заголовков в ячейке строки Перекрестная таблица.
Если нужно исключить некоторые записи до вычисления значений перекрестной таблицы, то следует добавить в бланк запроса поле или поля, которые будут использованы для отбора нужных записей. Для создания условия отбора по данному полю нужно выбрать в строке Групповая операция значение Условие и ввести условие в строку Условие отбора. Ячейка в строке Перекрестная таблица должна быть пустой.
Если при отборе записей запроса используются параметры, то для них обязательно должен быть указан их тип.
Пример 4.15. Создадим перекрестный запрос Нагрузка по группам. Его результатом должна быть таблица, столбцами которой являются средние баллы в группах по данному экзамену, а заголовками столбцов служат названия экзаменов (см. рис. 4.9).

Рис. 4.9. Перекрестная таблица Средние баллы по группам
В этом запросе используются данные из таблиц Занятия и Предмет. После их добавления в окно конструктора укажем тип создаваемого запроса: Перекрестный. Затем включим в бланк запроса следующие поля: Назв_пр, Часы и Код_гр. Каждое из них получит в строке Групповая операция значение Группировка. Так как значения из поля Назв_пр будут служить заголовками строк, выберем для него в строке Перекрестная таблица значение Заголовки строк.

Рис. 4.10. Бланк запроса Средние баллы по группам
Соответственно для поля Код_гр выберем для него в этой строке значение Заголовки столбцов. Поле Часы используется для подсчета нагрузки.
Поэтому выберем для него в строке Групповая операция значение Avg, а в строке Перекрестная таблица — Значение. Чтобы значения таблицы выдавались в отформатированном виде, зададим следующие свойства этого поля: для Формат поля — Фиксированный и для Число десятичных знаков — 2.
Использование вычисляемых полей в перекрестном запросе
В перекрестном запросе наравне с обычными полями в качестве заголовков могут использоваться вычисляемые поля.
Пример 4.16. Создадим перекрестный запрос Итоги сессии на курсе. Итоговая таблица должна содержать ФИО студентов, номера их учебных групп, номера зачетных книжек и оценки по экзаменам. Информация в ней должна быть отсортирована по группам, а затем по фамилиям.

Рис. 4.11. Бланк запроса Итоги сессии на курсе
В этом запросе также используются данные из таблиц Студенты, Сессия и Экзамены. Добавим их в окно конструктора и укажем тип создаваемого запроса: Перекрестный. Затем включим в бланк запроса следующие поля: Группа, Код студента, Экзамен и Оценка. Зададим для первых двух полей в строке Перекрестная таблица значение Заголовки строк, а для поля Экзамен — Заголовки столбцов. Для поля Оценка укажем в качестве групповой операции First, а для строки Перекрестная таблица — Значение. Выбор групповой операции в данном случае особой роли не играет (можно взять Sum или Avg), так как после группировки записей в поле значений каждой группы содержится не более одного числа (оценки студента по экзамену).
Создадим вычисляемое поле ФИО, и также выберем для него в строке Перекрестная таблица значение Заголовки строк. Разместим это поле после поля Группа и зададим в полях Группа и ФИО сортировку по
возрастанию. Для поля Код студента зададим в качестве свойства Подпись значение № зач_кн. На этом создание запроса завершено. Сохраним его под именем Итоги сессии на курсе.
Добавление итогового столбца в перекрестную таблицу
В перекрестную таблицу можно добавить один или несколько столбцов, содержащих итоговые сведения по строке. Для добавления итогового столбца следует еще раз включить в бланк запроса поле, значения которого используются при создании перекрестной таблицы. В строке Групповая операция нужно выбрать подходящую итоговую функцию, а в строке Перекрестная таблица — значение Заголовки строк.
Например, чтобы включить в перекрестную таблицу Итоги сессии на курсе столбец со средними баллами студентов и сделать его последним в таблице, достаточно выполнить следующие действия:
1. Включить в бланк запроса поле Оценка из таблицы Сессия.
2. Выбрать в строке Групповая операция значение Avg, а в строке Перекрестная таблица — значение Заголовки строк.
3. Дать этому столбцу новое название Средний балл и установить в его свойствах нужный формат вывода значений.
4. Перейти в режим просмотра и сделать столбец Средний балл последним в итоговой таблице.

Рис. 4.12. Создание итогового столбца
Отметим, что добавление итоговой строки в перекрестную таблицу невозможно, так как результат запроса может содержать строки либо с детализированной информацией, либо с агрегированной. Однако в формах и отчетах это вполне допустимо.
Использование свойства «Заголовки столбцов»
Иногда требуется изменить порядок следования столбцов в итоговой таблице. Для этого нужно, находясь в режиме конструктора, вызвать щелчком мыши по кнопке Свойства на панели инструментов свойства запроса. Затем щелкнуть на свойстве Заголовки столбцов и ввести текст заголовков в нужном порядке, отделяя их друг от друга точкой с запятой или запятой в зависимости от установок Windows.
1. В перекрестной таблице появятся лишь те столбцы, чьи имена указаны в свойстве Заголовки столбцов. Это обстоятельство можно использовать для отбора нужных столбцов.
2. Если какое-то имя введено с ошибкой, то в таблице появится пустой столбец с этим именем.
4.5. Запросы на изменениеЗапросы этого типа позволяют автоматизировать изменения данных в таблицах, а также сохранить результат запроса в виде таблицы Access.
4.5.1. Запрос на добавлениеС помощью запроса на добавление можно скопировать данные из одной таблицы (источника) и поместить их в другую таблицу (получатель). Причем можно добавить в таблицу-получатель как записи целиком, так и содержимое отдельных полей таблицы-источника.
Для создания запроса на добавление нужно выполнить следующие действия:
1. Включить в окно конструктора таблицу-источник. Затем выбрать пункт меню Запрос, а потом Добавление. На экране появится диалоговое окно Добавление (см. рис 4.13).
2. В поле Имя таблицы указать имя таблицы-получателя и затем нажать кнопку OK. Если таблица находится в другой БД, то нужно перед нажатием кнопки выбрать параметр В другой базе данных и ввести полное имя этой БД.

Рис. 4.13. Диалоговое окно Добавление
3. В бланк запроса следует включить:
• поля, участвующие в добавлении;
• поля, для которых задаются условия отбора;
• поле, соответствующее ключевому полю таблицы-получателя.
Если все поля в обеих таблицах имеют одинаковые имена, то можно просто переместить символ «звездочка» (*) в бланк запроса. Если имя добавляемого поля совпадает с именем соответствующего поля таблицы- получателя, то имя поля таблицы-получателя будет автоматически введено в строку Добавление. Если же имена полей таблиц отличны друг от друга, то в строке Добавление нужно указать имя поля таблицы- получателя, которое соответствует добавляемому полю таблицы- источника. Затем следует ввести условия отбора записей из таблицы- источника в строку Условие отбора.
4. Для просмотра добавляемых записей нужно щелкнуть по кнопке Вид на панели инструментов. Затем следует вернуться в режим конструктора, повторно щелкнув по этой кнопке.

Рис. 4.14. Запрос на добавление в режиме конструктора
5. Для добавления записей нужно щелкнуть по кнопке Запуск на панели инструментов. Access сообщит число добавляемых записей и попросит подтвердить выполнение операции. После подтверждения записи будут добавлены в таблицу-получатель.
Пример 4.17. Нужно добавить в таблицу Студенты сведения о новых студентах. Эти сведения содержатся в таблице Первокурсники, имеющей такую же структуру, что и таблица Студенты, кроме поля Средний балл.
Создание запроса начнем с включения в окно конструктора таблицы-источника Первокурсники. Затем вызовем контекстное меню запроса и года выберем сначала Тип запроса, а потом пункт Добавление. В появившемся окне Добавление укажем имя таблицы-получателя Студенты.
В бланк запроса поместим все поля таблицы Первокурсники за исключением ключевого поля Код студента, так как оно имеет тип Счетчик.
Поскольку имена полей в обеих таблицах совпадают, Access сам сопоставляет с каждым полем таблицы-источника соответствующее поле таблицы-получателя (см. рис. 4.14).
После выполнения запроса в конец таблицы Студенты будут добавлены записи с информацией о первокурсниках. Access автоматически введет значения в поле Код студента. Поле Средний балл в добавленных записях будет пустым, так как сведения о среднем балле отсутствовали в таблице-источнике.
4.5.2. Запрос на удалениеЗапрос на удаление позволяет удалить ненужные записи из таблицы. С его помощью можно удалять только всю запись целиком, а не отдельные поля внутри нее.
Для создания запроса на удаление нужно выполнить следующие действия:
1. Включить в окно конструктора таблицу, из которой предстоит удалить записи. Затем выбрать пункт меню Запрос, а потом Удаление.
2. Ввести условия отбора удаляемых записей в строку Условие отбора. Эти условия появятся под словом Условие строки Удаление.
3. Для просмотра удаляемых записей нужно щелкнуть по кнопке Вид на панели инструментов. Затем следует вернуться в режим конструктора, повторно нажав эту кнопку.

Рис. 4.15. Удаление заказов за январь 97 года
4. Для удаления записей нужно нажать кнопку Запуск на панели инструментов. Access сообщит число удаляемых записей и попросит подтвердить выполнение операции. После подтверждения записи будут удалены из таблицы.
Пример 4.18. Нужно удалить из таблицы Студенты записи, относящиеся к студентам со средним балом меньше 4. Известно, что эта таблица является главной в связи «один-ко-многим» между таблицами Студент и Успеваемость, для которой установлен режим обеспечения целостности данных, но не включен режим каскадного удаления.
Для выполнения этой операции с помощью запроса на удаление нужно включить в окно конструктора обе связанные таблицы и указать тип запроса — Удаление. Затем следует добавить в бланк запроса поле Средний балл Студенты и ввести в него условие отбора: 4<. После этого нужно перенести в бланк запроса звездочку (*) из таблицы Заказы. В ячейке Удаление в этом поле появляется значение Из (см. рис. 4.17).

Рис. 4.17. Удаление студентов со средним баллом >4.
Если выполнить этот запрос, то из подчиненной таблицы Успеваемость будут удалены записи, относящиеся к студентам, средний балл у которых >4. Для их предварительного просмотра достаточно щелкнуть по кнопке Выполнить.
После удаления записей о этих студентах нужно удалить саму таблицу Успеваемость из окна конструктора (см. рис. 4.18). Для этого следует выделить щелчком мыши список ее полей и нажать клавишу Delete. Затем нужно еще раз выполнить запрос. Теперь будут удалены записи из главной таблицы Студенты, указанные в условии отбора.
4.5.3. Запрос на создание таблицыЗапрос на создание таблицы позволяет создать таблицу на основе данных, содержащихся в других таблицах БД. Он часто используется для создания таблицы, предназначенной для экспорта в другую БД Access или архивной копии таблицы. Например, можно создать таблицу со сведениями обо всех старых заказах на книги прежде чем удалить их из таблицы Заказы.
Для создания запроса этого типа нужно выполнить следующие действия:
1. Включить в окно конструктора таблицы или запросы, содержащие записи, которые следует поместить в новую таблицу.
2. Поместить в бланк запроса поля, которые должна содержать новая таблица. Добавить к ним поля, для которых задаются условия отбора. В строке Условие отбора ввести условия выбора нужных записей.

Рис. 4.18. Удаление сведений о студентах со средним баллом >4
3. Выбрать пункт меню Запрос, а затем Создание таблицы. На экране появится диалоговое Создание таблицы (см. рис. 4.20).

Рис. 4.20. Диалоговое окно Создание таблицы
4. В поле Имя таблицы ввести имя создаваемой таблицы и затем щелкнуть по кнопке OK. Если таблица находится в другой БД, то нужно перед нажатием кнопки выбрать параметр В другой базе данных и ввести полное имя этой БД.
5. Для предварительного просмотра новой таблицы нужно щелкнуть по кнопке Вид на панели инструментов. Затем следует вернуться в режим конструктора, повторно щелкнув по этой кнопке.
6. Для создания таблицы нужно щелкнуть по кнопке Запуск на панели инструментов. Если в БД уже существует таблица с таким именем, то Access попросит разрешения удалить ее перед началом операции. Затем он сообщит число записей и попросит подтвердить выполнение операции. После подтверждения будет создана таблица.
Пример 4.20. Построим запрос, создающий таблицу, в которой будет храниться информация о студентах с возрастом не менее 18 лет. Для этого добавим в окно конструктора таблицу Студенты и перенесем в бланк запроса звездочку (*) и поле Дата рождения. Введем в это поле условие в виде параметра (см. рис. 4.20) и установим для него тип Дата/время. Затем укажем тип запроса Создание таблицы и в окне Создание таблицы введем имя создаваемой таблицы: Студенты совершеннолетние.

Рис. 4.20. Отбор совершеннолетних студентов
Выполним созданный запрос. Access попросит ввести значение параметра и после ввода даты создаст таблицу Совершеннолетние студенты, содержащую фамилии студентов, дата рождения которых не превосходит введенной даты. Ее структура идентична структуре таблицы Студенты. При повторном выполнении запроса старая таблица будет удалена и ее заменит новая таблица с тем же именем.
4.5.4. Запрос на обновлениеЭтот запрос позволяет внести изменения в группу записей одной или нескольких таблиц. Для создания запроса на обновление нужно выполнить следующие действия:
1. Включить в окно конструктора таблицу или запрос, содержащие записи, которые следует обновить.
2. Выбрать пункт меню Запрос, а затем Обновление. В бланке запроса появится дополнительная строка Обновление.
3. Поместить в бланк запроса обновляемые поля и добавить к ним поля, для которых задаются условия отбора.
4. В строке Условие отбора ввести условия выбора нужных записей, а в строке Обновление ввести выражения, которые должны быть использованы для изменения полей.
5. Для предварительного просмотра обновляемых записей щелкнуть по кнопке Вид на панели инструментов. Выводимый список будет содержать старые значения. Затем следует вернуться в режим конструктора, повторно щелкнув по этой кнопке.
6. Для обновления записей щелкнуть по кнопке Запуск на панели инструментов. Access сообщит число обновляемых записей и попросит подтвердить выполнение операции. После подтверждения в записи будут внесены новые значения.
Пример 4.20. Построим запрос, вносящий изменения в поле Всего часов. Предполагается, что количество часов должно увеличиться на 20%.

Рис. 4.21. Изменение количества часов отведенных на изучение предмета
Для создания запроса добавим окно конструктора таблицу Предмет и выберем пункт меню Запрос, а затем пункт Обновление. Поместим в бланк запроса обновляемое поле Всего часов и поле Код предмета, в котором зададим условие отбора 2 (см. рис. 4.21). После выполнения запроса Access обновит значения в шести записях.
4.5.5. Ошибки при выполнении запросов на изменениеПеред внесением изменений в БД Access анализирует запрос и изменяемые данные. При обнаружении ошибки он выдает соответствующее сообщение и предоставляет пользователю возможность отменить операцию. Access различает следующие типы ошибок:
1. Ошибки преобразования типа возникают при добавлении данных в существующую таблицу, если тип данных полей-получателей не совпадает с типом данных полей-источников и добавляемые данные не могут быть преобразованы к типу данных полей-получателей.
2. Нарушение уникальности ключа. Такие ошибки возникают при попытке добавления или изменения записи в таблице, в результате чего появляется дубликат первичного ключа или уникального индекса. Access не будет добавлять или изменять такие записи. Поэтому перед выполнением такой операции нужно изменить значения первичного ключа в исходной таблице.
3. Нарушение блокировки возникает при работе с таблицей, к которой имеют доступ другие пользователи в сети. Access не может выполнить операцию обновления записи, если в нее в это же время вносит изменения другой пользователь.
4. Нарушение условий на значение. Если добавляемая или обновляемая запись не удовлетворяет условию на значение для одного из полей или таблицы, то Access не произведет операцию добавления или обновления для этой записи.
5.Формы5.1. Общие сведенияФормы предназначены для просмотра, ввода, редактирования и управления данными. При использовании формы Access предоставляет пользователю существенно больше возможностей для работы с информацией по сравнению с ее стандартным представлением в режиме таблицы. Удобство применения форм для работы с данными заключается в следующем:
• Формы обычно позволяют отобразить на экране всю запись целиком, причем порядок следования полей может быть изменен, а часть из них вообще не включена в форму.
• В формах кроме редактируемых полей, содержащих данные из таблиц БД, можно размещать и нередактируемые (вычисляемые) поля.
• В формы можно добавлять комментарии, рисунки, графики, изменять их внешний вид, подбирая подходящие шрифты, фон и стиль оформления. Это позволяет в случае необходимости разработать форму, имеющую большое сходство с бумажной формой.
• Формы позволяют существенно упростить, а зачастую полностью автоматизировать ввод новых данных.
• В формах можно размещать различные кнопки (кнопочные формы), нажатие на которые приводит к открытию других форм, выполнению запросов, печати отчетов и т. д.
• Формы могут использоваться в качестве диалоговых окон и содержать собственное меню пользователя.
Для разработки форм в Access существует специальный инструментарий. Прежде чем приступать к описанию процедур создания форм, обсудим несколько общих моментов.
Основным источником данных для формы являются таблицы и запросы. Информация может быть также включена в форму в результате импорта различных объектов либо проведения вычислений. Если через форму осуществляется обновление данных, то они обновляются и в источнике.
Построение формы — итеративный процесс. После создания макета формы нужно просмотреть его, чтобы убедиться в его пригодности. Если необходимо внести изменения, можно вернуться к корректировке макета.
Для создания макета формы нужно в окне БД перейти на вкладку Формы и нажать клавишу Создать. После выбора источника данных для формы, а также способа ее создания, при переходе к следующему этапу автоматически обновляются панели инструментов. Появляется панель инструментов Конструктор форм.
Создание, корректировка и просмотр формы осуществляется в различных режимах:
• в режиме конструктора форма создается и корректируется;
• в режиме формы или режиме таблицы форма используется для работы с данными;
• в режиме предварительного просмотра форма просматривается перед печатью.
Все эти режимы выбираются с помощью кнопки Вид панели инструментов Конструктор форм или через меню Вид.
5.1.1. Структура формыФорма состоит из нескольких разделов (см. рис. 5.1), причем обязательным является только один из них — область данных. Кроме этого раздела в форме могут присутствовать следующие разделы: заголовок и примечание формы, а также верхний и нижний колонтитулы. Информация в них вводится разработчиком формы. Эти разделы имеют следующие назначения:

Рис. 5.1. Структура формы
Заголовок формы может содержать название формы, инструкции по работе с ней, а также другую информацию (текущую дату, время и т.д.). В режиме формы он находится в верхней части экрана, а при печати — в верхней части первой страницы. В режиме таблицы этот раздел не отображается.
Верхний колонтитул может содержать заголовки и любые другие сведения, помещаемые в верхней части каждой страницы формы при печати.
Нижний колонтитул также используется при печати и может содержать номер страницы, дату и другую информацию.
Примечание формы может содержать инструкции по использованию формы, кнопки и свободные элементы управления для ввода или вывода данных. В режиме формы область примечаний находится в нижней части экрана, а при печати печатается на последней странице.
При создании формы с помощью конструктора она содержит лишь один раздел — область данных. Остальные разделы можно добавить, используя соответствующие пункты контекстного меню формы или меню Вид.
Форма может включать подчиненные формы, внутри которых могут отображаться три раздела: заголовок, область данных и примечание.
Как и все объекты БД, форма и ее разделы имеют свойства. В свойствах задаются режимы работы с формой, вид формы, источник данных, использование фильтра. Свойства разделов используются при выводе их на экран или печать.
5.1.2. Виды формРазличные виды форм создаются обычно мастером форм или пользователем с помощью конструктора. Кроме того, существуют мастер диаграмм и мастер сводная таблица.
Возможно создание трех видов автоформ: в один столбец, табличной и ленточной формы. При создании автоформы все поля таблицы или запроса выводятся в форму автоматически.
Форма в один столбец отображает поля, расположенные в один столбец. На экране отображается одна запись.
Табличная форма отображает данные в виде нескольких строк и столбцов. Одновременно отображается несколько записей. По внешнему виду и способам перемещения по записям она ничем не отличается от обычной таблицы Access.
Ленточная форма похожа на табличную форму и отличается лишь внешним оформлением.
В отличие от автоформ при использовании мастера форм поля в форму можно выбирать. Мастер может создать кроме вышеперечисленных видов форм составную форму. Она состоит из главной формы и подчиненной. В этих формах отображаются данные из разных таблиц, причем эти таблицы чаще всего связаны отношением «один-ко-многим». Данные главной формы отображаются в один столбец, а подчиненная форма обычно имеет табличный формат.
Диаграмма представляет данные в графическом виде и создается мастером диаграмм с использованием приложения Microsoft Graph.
Форма Сводная таблица создается на основании данных из сводных таблиц Excel.
Пользователь может создавать формы так, как он захочет, и включать в них любые данные. Он может начать с пустой формы (с «нуля») или воспользоваться мастером форм, а затем в режиме конструктора внести в форму любые изменения.
5.1.3. Содержимое формыВся информация в форме размещается внутри элементов управления (ЭУ). Это графические объекты, предназначенные для изображения данных, выполнения вычислительных операций, вывода на экран вспомогательной информации, оформительских эффектов (рамок, линий и др.). Характер ЭУ зависит от источника размещаемой в нем информации.
Присоединенные ЭУ связаны с полями источника данных (таблицы или запроса) для формы. Они используются для просмотра, ввода или обновления значений из полей таблиц БД.
Для свободного ЭУ источник данных не определен. ЭУ этого типа обычно используются для вывода на экран надписей, линий и рисунков.
Для вычисляемого ЭУ источником данных служит выражение, в котором могут быть использованы значения из полей источника данных для формы, а также значения, содержащиеся в других ЭУ формы. Эти ЭУ обычно используются для выполнения вычислений и вывода на экран их результатов. Результат вычислений не сохраняется в БД.
5.2. Создание формыПри нажатии кнопки Создать во вкладке Формы окна БД появляется диалоговое окно Новая форма. В процессе диалога нужно выбрать один из способов создания формы и таблицу или запрос, которые будут служить источником данных для формы (см. рис. 5.2).
Проще всего создать форму с помощью одной из автоформ. Нужно выбрать из списка источник данных (таблицу/запрос) и одну из предложенных автоформ. Автоформу можно также создать, находясь в окне БД во вкладке Таблицы или Запросы. Для этого нужно выбрать щелчком мыши таблицу/запрос и щелкнуть по кнопке Автоформа на панели инструментов.
5.2.1. Использование Мастера формЕсли выбран Мастер форм и указан источник данных для новой формы (таблица/запрос), то все шаги по ее созданию будут определяться мастером с помощью последовательности диалоговых окон. Сначала рассмотрим случай, когда создаваемая форма основана на одной таблице/запросе. Создание с помощью мастера составной формы, использующей данные из нескольких таблиц/запросов, будет описано позднее (см.п. 5.6.1).
1. В первом окне мастера форм нужно выбрать поля таблицы/запроса, которые будут присутствовать в форме, и переместить их из списка Доступные поля в список Выбранные поля. Для этого используются кнопки >>, >, <, <<. Кнопки >> и << перемещают все поля из одного списка в другой, а > и < — только одно поле. Поле можно также переместить из одного списка в другой с помощью двойного щелчка мыши.
2. В следующих двух окнах диалога задается внешний вид и стиль оформления формы. После выбора варианта в окне мастера появляется соответствующий образец.
3. Последнее диалоговое окно дает возможность изменить заданное по умолчанию имя формы. Закончить диалог можно либо просмотром созданной формы, либо переходом в режим конструктора для внесения в нее изменений.

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

Рис. 5.3. Бланк конструктора с панелью элементов и списком полей
После выбора этого режима на экране появляется бланк конструктора формы (см. рис. 5.3). Кроме бланка конструктора формы появляются окно Список полей и Панель элементов с кнопками для ввода различных ЭУ. Если панель элементов отсутствует, то ее можно вызвать на экран с помощью пункта Панель элементов меню Вид, либо нажать кнопку Панель элементов на панели инструментов Конструктор форм.
Состав и размещение ЭУ пользователь определяет самостоятельно. На бланке конструктора формы имеется сетка для удобного размещения ЭУ. Размещению ЭУ помогают также горизонтальная и вертикальная линейки. Если сетка или линейки отсутствуют, то их также можно вызвать на экран с помощью соответствующих пунктов меню Вид. Для размещения ЭУ в форме нужно нажать соответствующую кнопку на панели элементов, а затем щелкнуть мышью в том месте области данных, где предполагается поместить левый верхний угол ЭУ. Ниже приводится описание панели элементов.
Перечень кнопок панели элементов
Кнопка Выбор объектов — используется для выделения одного или нескольких ЭУ. По умолчанию эта кнопка нажата. Для отключения этой кнопки следует нажать ее еще раз.
Кнопка Мастера элементов — включает и отключает мастеров по созданию ЭУ. Мастера помогают создавать такие сложные ЭУ, как список, поле со списком, группа переключателей, кнопка, диаграмма, подчиненная форма или подчиненный отчет. Для создания этих элементов управления с помощью мастеров кнопка Мастера элементов должна быть нажата.
Кнопка Поле — создает ЭУ Поле, используемый для отображения, ввода или изменения данных в источнике записей формы, а также для вывода результатов вычислений.
Кнопка Надпись — используется для создания ЭУ Надпись, содержащего неизменяемый текст, например, заголовок, подпись поля или пояснение. По умолчанию многие ЭУ, в частности Поле, имеют связанные с ними надписи.
Кнопка Группа переключателей — используется для размещения группы ЭУ, состоящей из флажков, переключателей или выключателей, представляющих набор альтернативных значений.
Кнопка Выключатель — используется для создания ЭУ Выключатель, связанного с логическим полем. Если щелкнуть по выключателю, то он будет изображен нажатым и его значение станет равно Вкл (Истина). При повторном щелчке его значение станет равно Выкл (Ложь). Выключатель можно включить в группу переключателей. Если щелкнуть по выключателю, входящему в группу переключателей, переводя его в состояние Вкл, то любой ранее нажатый элемент группы (выключатель, переключатель или флажок) будет переключен в состояние Выкл.
Кнопка Переключатель — используется для создания ЭУ Переключатель, называемого также радиокнопкой. Если щелкнуть по переключателю, то в центре его появится темный кружок, а его значение станет равно Вкл (Истина). При повторном щелчке его значение станет равно Выкл (Ложь). Если щелкнуть по переключателю, входящему в группу переключателей, переводя его в состояние Вкл, то любой ранее нажатый элемент группы (выключатель, переключатель или флажок) будет переключен в состояние Выкл.
Кнопка Флажок — используется для создания ЭУ Флажок, связанного с логическим полем. Если щелкнуть по флажку, то в центре его появится «галочка», а его значение станет равно Вкл (Истина). При повторном щелчке его значение станет равно Выкл (Ложь), а «галочка» исчезнет. Если щелкнуть по флажку, входящему в группу переключателей, переводя его в состояние Вкл, то любой ранее нажатый элемент группы (выключатель, переключатель или флажок) будет переключен в состояние Выкл.
Кнопка Поле со списком — используется для создания ЭУ Поле со списком, объединяющего два ЭУ: поле и раскрывающийся список. Для ввода значения в поле таблицы, связанное с этим ЭУ, можно ввести значение в поле или выбрать значение в списке.
Кнопка Список — создает ЭУ Список, содержащий список потенциальных значений. В режиме формы выбранное в списке значение можно ввести в новую запись или использовать для изменения значения в существующей записи.
Кнопка Кнопка — создает ЭУ Кнопка, используемый для выполнения таких действий, как поиск или печать записи, работа с формой или отчетом, запуск запроса или макроса.
Кнопка Рисунок — используется для включения в форму или отчет неизменяемого рисунка.
Кнопка Свободная рамка объекта — используется для отображения в форме или отчете свободного объекта OLE, например, фрагмента электронной таблицы Excel или документа Word. Этот объект остается неизменным при переходе от записи к записи.
Кнопка Присоединенная рамка объекта — создает рамки для отображения в форме или отчете объектов OLE, таких как набор рисунков. Этот элемент управления предназначен для объектов, сохраненных в поле источника записей формы. При переходе от записи к записи в форме выводятся разные объекты.
Кнопка Конец страницы — создает ЭУ Конец страницы, указывающий принтеру начало новой страницы в печатной форме или отчете. Этот ЭУ не появляется в форме в режиме формы.
Кнопка Набор вкладок — вставляет ЭУ Набор вкладок для создания многостраничной формы. Этот ЭУ выглядит как набор страниц, которые вы видели в окнах свойств различных ЭУ. Страницы ЭУ Набор вкладок могут содержать присоединенные или свободные ЭУ, включая ЭУ Подчиненная форма или Подчиненный отчет.
Кнопка Подчиненная форма/отчет — добавляет в основную форму или основной отчет соответственно подчиненную форму или подчиненный отчет.
Кнопка Прямоугольник — создает прямоугольник, который можно перемещать и размеры которого можно изменять. Цвет рамки и цвет фона определяются с помощью палитры.
Кнопка Линия — создает прямую линию, которую можно перемещать и размеры которой можно изменять. Цвет и толщину линии можно изменить с помощью кнопок панели инструментов Панель форматирования или окна свойств.
Кнопка Дополнительные элементы — выбор этой кнопки открывает список дополнительных ЭУ ActiveX, которые можно использовать в формах. ЭУ выбираются из списка Дополнительные элементы, который является частью Access.
Фиксация кнопки на панели элементов
Если нужно создать несколько одинаковых ЭУ, то имеет смысл зафиксировать соответствующую кнопку на панели элементов. Для этого нужно по ней дважды щелкнуть. Когда кнопка зафиксирована, нет необходимости каждый раз нажимать ее при создании нового ЭУ. Для отмены фиксации кнопки следует нажать клавишу Esc.
Изменение стандартных свойств ЭУ
Каждый ЭУ имеет набор стандартных свойств, которые он получает по умолчанию при его создании. Эти свойства определяют внешний вид и характеристики ЭУ. Так, например, ЭУ Поле создается по умолчанию с присоединенной подписью (см. рис. 6.4). Для того чтобы изменить стандартные свойства ЭУ, следует щелкнуть по соответствующей кнопке на панели элементов, затем по кнопке Свойства на панели инструментов и в появившемся окне задать нужные значения стандартных свойств.

Рис. 5.4. Стандартные свойства ЭУ Поле
После изменения стандартных свойств ЭУ добавляемые в форму ЭУ этого типа по умолчанию получат новые значения свойств.
В качестве стандартных свойств ЭУ данного типа можно указать свойства существующего ЭУ. Для этого нужно щелкнуть по ЭУ со свойствами, которые должны стать стандартными, и выбрать в меню Формат команду Задать стандартные свойства. Свойства выбранного ЭУ станут стандартными свойствами для элементов этого типа.
Пример 5.1. Нужно создать форму, содержащую несколько одинаковых полей без подписей шириной 2 см.
Чтобы поля в форму добавлялись с такими характеристиками, следует вызвать окно стандартных свойств ЭУ Поле (см. рис. 6.4) и задать для свойства Добавление подписи значение Нет, а для свойства Ширина — значение 2.
Изменения в стандартных свойствах ЭУ формы не влияют на стандартные свойства ЭУ, создаваемые в других формах. Чтобы использовать измененные стандартные свойства ЭУ в других формах, нужно сначала сохранить текущую форму. Затем следует выбрать в меню Сервис команду Параметры и во вкладке Формы/отчеты указать в поле Шаблон формы ее имя в качестве шаблона.
Настройка внешнего вида формы
При создании формы у пользователя может возникнуть желание изменить положение и размеры уже размещенных в форме ЭУ. Перед выполнением этих операций ЭУ нужно выделить. Чтобы выделить ЭУ, укажите на него и щелкните кнопкой мыши. Вокруг выделенного ЭУ появляются маркеры размеров и маркер перемещения (см. рис. 5.5). Если этот ЭУ — поле, то выделяется и поле и его подпись.

Рис. 5.5. Маркеры размера и перемещения на выделенном ЭУ
Можно проделывать оформительские операции сразу с группой ЭУ. Группу ЭУ можно выделять несколькими способами.
Если нужно выделить ЭУ, расположенные рядом, установите указатель мыши в верхнем левом углу области расположения ЭУ и при нажатой кнопке мыши переместите его в нижний правый угол области.
Если нужно выделить ЭУ, расположенные не рядом или поверх других ЭУ, нажмите клавишу Shift и, не отпуская ее, по очереди выделите нужные ЭУ.
Можно выделять ЭУ, занимающие одинаковые горизонтальные или вертикальные позиции, с помощью линеек бланка формы. Установите указатель на нужную позицию горизонтальной или вертикальной линейки и нажмите кнопку мыши. Все ЭУ, расположенные на этом уровне, будут выделены. Если нужно увеличить область выделения, нужно, не отпуская кнопку мыши, выделить необходимую область на горизонтальной или вертикальной линейке.
Выделенные ЭУ можно удалить, переместить, изменить размеры и выровнять их положение.
Удалить выделенные ЭУ можно, нажав клавишу Del.
Для перемещения ЭУ надо поместить указатель на рамку выделенных ЭУ вне маркеров. Он должен принять вид раскрытой руки. При нажатой кнопке мыши переместить ЭУ на нужное место. Если нужно переместить один из выделенных ЭУ, нужно указатель установить на маркер перемещения этого ЭУ. Он примет вид руки с указательным пальцем. При нажатой кнопке мыши перетащить ЭУ на нужное место. Для повышения точности расположения ЭУ используйте линейки.
Для изменения размеров ЭУ нужно установить указатель на маркер размера одного из выделенных ЭУ и изменить его размеры. Все выделенные ЭУ изменят свои размеры пропорционально первому. Если при этом в пункте Размер меню Формат задано значение По узлам сетки, размеры будут изменяться так, чтобы их углы совпадали с углами сетки. В этом же пункте Размер можно задать другой вариант изменения размеров в выделенной группе ЭУ (см. рис. 5.6).

Рис. 5.6. Изменение размера
Выровнять положение ЭУ на бланке формы можно их перемещением, но удобнее воспользоваться пунктом Выровнять меню Формат. Предусмотрено выравнивание по самому правому, левому, нижнему или верхнему ЭУ либо по ячейкам сетки. С помощью пункта Интервал по вертикали (горизонтали) можно быстро установить равные интервалы по вертикали и горизонтали между выделенными ЭУ.
Для оформительских эффектов используются кнопки панели инструментов Формат или аналогичные пункты меню Формат. Это кнопки Цвет заливки/фона, Цвет текста, Оформление. С их помощью можно менять цвет ЭУ, цвет текста, цвет границ, различные эффекты изображения (вдавленное, выпуклое и т. д.). Можно также применять автоформаты. Они облегчают создание оформительских эффектов. Автоформаты вызываются кнопкой Автоформат на панели инструментов Конструктор формы.
Можно скопировать характеристики форматирования из одного ЭУ в другой. Для этого следует щелкнуть сначала по ЭУ, формат которого копируется, затем по кнопке Формат по образцу на панели конструктора, и в заключение — по ЭУ, на который нужно перенести скопированный формат. Если зафиксировать двойным щелчком кнопку Формат по образцу, то скопированный формат можно использовать для форматирования нескольких ЭУ.
5.3. Создание основных ЭУКак уже говорилось выше, ЭУ могут быть присоединенными, свободными или вычисляемыми. Каждому типу ЭУ соответствует свой способ его создания.
Для создания присоединенного ЭУ проще всего использовать список полей источника данных, который обычно автоматически появляется при создании формы. Если на экране его нет, то его можно открыть кнопкой Список полей или командой Список полей меню Вид.
Чтобы создать присоединенный ЭУ, нужно выбрать связанное с ним поле в списке полей и, держа нажатой левую кнопку мыши, перетащить его в нужное место формы. Access создаст ЭУ, соответствующий выбранному полю, и задаст значения его свойств, отвечающие типу данных и свойствам поля.
Можно перенести, предварительно выделив, сразу несколько полей из списка. В этом случае в форме появится группа ЭУ, присоединенных к этим полям. При желании тип созданного ЭУ можно изменить.
Свободные ЭУ создаются с помощью панели элементов. Для создания элемента нужно нажать соответствующую кнопку на панели, а затем щелкнуть мышью в том месте области данных, где должен находиться левый верхний угол создаваемого ЭУ. Будет создан свободный ЭУ стандартного размера.
Обычно вычисляемым ЭУ является поле. Описание правил создания этого ЭУ, а также более детальная информация о создании наиболее часто используемых ЭУ приводятся ниже
5.4.Настройка формыНастройка формы производится путем изменения свойств как самой формы, так и ее размещенных в ней ЭУ.
5.4.1. Изменение свойств ЭУСвойства ЭУ, размещенного в форме, вызываются через контекстное меню ЭУ или нажатием кнопки Свойства на панели инструментов. Изменяя некоторые свойства ЭУ, можно настроить форму для более удобного применения.
Присоединенный ЭУ Поле наследует по умолчанию такие свойства поля таблицы или запроса, как формат поля, число десятичных знаков, маска ввода, текст строки состояния, условие на значение, сообщение об ошибке и др. Эти свойства ЭУ можно изменить. Например в свойстве Текст строки состояния можно задавать короткую инструкцию типа “Вводится полностью (без сокращения)”. Эта инструкция будет появляться в строке состояния, когда наступит ввод значения в это поле в режиме формы.
Для ускорения ввода данных через форму можно для некоторых ЭУ задать свойство Значение по умолчанию, а в свойстве Условие на значение задать проверку вводимых значений. Чтобы запретить ввод или изменение данных в режиме формы для присоединенного ЭУ, нужно установить для его свойства Блокировка значение «Да». Для полного запрета изменений, выводящихся в форме данных, проще установить для свойства формы Разрешить изменения значение «Нет».
Иногда требуется, чтобы размещенный в форме ЭУ был невидим в режиме формы. В этом случае следует установить для его свойства Вывод на экран значение «Нет».
При размещении в форме каждый ЭУ получает стандартное имя, например, «Поле3» или «Надпись2». Это имя можно изменить на более содержательное, указав новое имя в свойстве Имя. Обычно это делается, если предполагается использовать имя данного элемента в каком-либо выражении или программе. Давая ЭУ новое имя, нужно следить за тем, чтобы оно не совпало с именем другого ЭУ, размещенного в форме.
Размеры ЭУ можно регулировать с помощью маркеров размера. Если ЭУ отражает данные текстового поля, содержащего большой текст, то помимо увеличения размера ЭУ, можно воспользоваться свойством Полосы прокрутки.
Свойство Расширение и Сжатие используется при печати формы. Если в этих свойствах задано значение «Да», то размеры ЭУ будут при печати изменяться автоматически так, чтобы содержимое было напечатано полностью.
Можно также изменить выражение для вычисляемого поля (свойство Данные) и формат вывода на экран его значения (свойство Формат поля).
5.4.2. Изменение последовательности переходаКроме изменения свойств ЭУ формы можно изменить последовательность перехода по полям формы. В режиме формы перемещение по полям формы осуществляется нажатием клавиши Tab или Shift+Tab (в обратной последовательности). Последовательность этих перемещений задается в пункте Последовательности перехода меню Вид. В режиме конструктора формы при добавлении в форму нового ЭУ он добавляется и в Последовательность перехода. С помощью команды Последовательность перехода из меню Вид пользователь может вмешаться в этот порядок и поменять его на нужную ему последовательность. В диалоговом окне вызванной команды нужно указать на расположенную слева от названия ЭУ кнопку, нажать левую кнопку мыши и «перетащить» ЭУ в нужное место в списке Последовательность.
5.4.3. Добавление разделовДобавление или удаление разделов в форму осуществляется через меню Вид. В любом разделе формы можно поменять, добавить или удалить любые ЭУ. Можно изменять и размеры раздела. У разделов формы также есть свойства, которые можно менять.
Так, раздел Заголовок формы можно отображать на экране в режиме формы, если установить значение Только на экран в свойстве Режим вывода. При печати формы в этом случае раздел не печатается.
Можно запретить вывод примечаний на экран в свойстве Режим вывода, но разрешить их печать или, наоборот, разрешить вывод примечаний на экран, но не их распечатку.
Размеры разделов в форме можно изменять, перемещая их нижнюю границу вверх или вниз нажатой левой кнопкой мыши.
Свойства раздела вызываются двойным щелчком мыши на заголовке раздела или через контекстное меню, когда курсор мыши находится внутри раздела вне каких - либо ЭУ.
5.4.4. Изменение свойств формыСама форма также имеет свойства (см. рис. 5.7), которые вызываются двойным щелчком мыши из бланка формы, если указатель находится на серой поверхности формы вне всех разделов или на пересечении горизонтальной и вертикальной линеек.

Рис. 5.7. Окно свойств формы
В свойствах задаются режимы работы с формой, ее внешний вид, источник данных и другие характеристики. Одним из основных свойств формы является Режим по умолчанию. В этом свойстве устанавливается режим окна формы при ее открытии. Перечислим возможные режимы:
• простая форма — на экране отображается одна запись;
• ленточная форма — отображение нескольких записей;
• таблица — показ записей в табличном формате.
В свойствах формы можно задать порядок сортировки ее записей. Для этого следует указать в свойстве Порядок сортировки имена полей, по которым производится сортировка, разделив их запятыми. Если сортировка производится по одному полю, то проще всего задать ее порядок в режиме формы или режиме таблицы, щелкнув мышью сначала по этому полю, а затем по одной из кнопок Сортировка по возрастанию или Сортировка по убыванию , задающих нужное направление сортировки.
Требуемый порядок сортировки можно задать непосредственно в источнике данных формы. Для этого нужно щелкнуть по свойству Источник записей, а затем по появившейся справа кнопке построителя запросов. Откроется окно конструктора запросов, содержащее базовую таблицу или запрос. Нужно создать и сохранить запрос, задающий нужный вид сортировки. Его инструкция SQL заменит в свойстве Источник записей имя базовой таблицы/запроса. Свойство Источник записей можно использовать и для другой модификации базового источника данных формы, например отбора подмножества записей в соответствии с каким-либо критерием.
В свойствах формы задается и режим работы с записями. Режим может быть четырех типов, задается значениями Да/Нет:
• Разрешить изменения — можно просматривать, корректировать и вводить новые записи.
• Разрешить добавление — после перехода к последней записи будет представлена пустая строка для ввода новой записи.
• Разрешить удаление — можно удалять записи.
• Ввод данных — позволяет начать работу с записями с пустой строки, т. е. с ввода новой записи.
По умолчанию свойство Ввод данных имеет значение «Нет». В этом случае при открытии формы в ней выводятся существующие записи. Если форма предназначена для ввода новых записей, то нужно установить значение этого свойства — «Да». Тогда при открытии формы будет выводиться только пустая запись.
5.5. Создание диаграммВ формы и отчеты Access можно включать диаграммы. При создании формы/отчета после выбора источника данных задается способ создания Диаграмма, вызывающий мастера Создание диаграмм. Лучше всего в качестве источника данных при создании диаграмм использовать перекрестные запросы. В них данные уже подытожены и отражены в виде таблицы с шапкой.
После выбора источника данных и способа создания формы/отчета — Диаграмма последует цепочка диалоговых окон мастера Создание диаграмм.
1. В первом окне нужные поля из списка Доступные поля переправляются в Список полей диаграммы.
2. Во втором окне выбирается тип диаграммы: областная, график, гистограмма и т.д.
3. В третьем окне мастера Создание диаграмм появляется образец выбранного типа диаграммы и предлагается выбрать поля, которые будут отображаться в различных областях диаграммы (см. рис. 5.8). На образце в прямоугольниках, расположенных в областях, видны названия полей, которые выбраны на первом этапе. В правой части окна расположены кнопки полей. Если Вас не устраивают данные, расположенные в прямоугольниках, можно заменить их, «перетаскивая» из одного прямоугольника или кнопки в другой. В области диаграммы часто отображаются названия полей с добавлением названия операции группирования, которую мастер провел с данными. Если Вы хотите изменить выбор мастера, щелкните по такому полю дважды и в появившемся списке операций выберите нужную группировку, например, вместо Сумма — Среднее. Если никакая операция не нужна, выберите значение Отсутствует.
4. В четвертом диалоге задается заголовок и система обозначений областей диаграммы. После этого можно нажать кнопку Готово.

Рис. 5.8. Окно Мастера с макетом диаграммы
Диалоги мастера диаграмм закончены, но почти наверняка Вас не устроит вид созданной диаграммы. Посмотрите на результат работы в режиме формы и войдите в режим конструктора. Дважды щелкните по диаграмме для активизации Microsoft Graph. Диаграмма будет выделена в рамку, а также изменится главное меню Access, в нем добавится пункт Диаграмма. В рамке будет отражена не Ваша диаграмма, а похожий образец. Вы можете выделять любые его части, вносить в них изменения, форматировать их. Эти же действия можно выполнять через пункты меню Диаграмма.
Пример 5.2. Создадим диаграмму Нагрузка на базе перекрестного запроса Зан-Пред.
Для построения диаграммы перейдем на вкладыш Форма и нажмем кнопку Создать. Выберем из списка запрос Зан-Пред и способ создания формы —Сводная Диаграмма.
В первом окне перебросим все поля из списка Доступные поля в Список полей диаграммы. Затем выберем тип диаграммы — Гистограмма.
Третье окно диалога будет иметь вид, представленный на рис. 5.8.
На нем видно, что в области диаграммы отображается гистограмма только для одного предмета — английского языка. Название поля в прямоугольнике — Сумма_Английский, т.е. Мастер диаграмм выбрал для полей со средним баллом функцию группирования Суммирование.

Рис. 5.9. Диаграмма в режиме формы
У нас средний балл уже подсчитан в запросе, поэтому операция группирования нам не нужна. Для ее отмены следует сделать двойной щелчок по полю Сумма_Английский. Появится список групповых операций. Из него нужно выбрать значение Отсутствует. После этого название поля изменится на Английский. Добавим поля История, Информатика и Философия «перетаскиванием» их из правой части окна в прямоугольник области диаграммы. Закроем диаграмму и дадим ей имя Итоги сдачи сессии.
Откроем созданную форму в режиме формы. Мы увидим, что нужно изменить размер диаграммы, добавить подписи по осям, изменить шкалу оси значений, а также формат текста осей и легенды. Для внесения изменений войдем в режим конструктора. На бланке формы будет находиться не наша диаграмма, а похожий образец. Щелкнем по нему дважды. Диаграмма выделится рамкой и изменится главное меню Access. В нем добавится пункт Диаграмма.
Выберем этот пункт меню, а затем пункт Параметры диаграммы. Введем название диаграммы Итоги сдачи сессии, подпись оси Х — Группы ЭФ и подпись по оси Y — Средний балл. Выйдем из команды Параметры диаграммы. Установим размеры шрифта для названия диаграммы — 12 пунктов и шрифт подписей — 8 пунктов.

Рис.5.10. Бланк запроса Оценки студентов
Выделим ось значений и вызовем контекстное меню. Выберем команду Формат оси. Установим минимальное значение шкалы — 3,4, максимальное значение — 4,6 и точку пересечения с осью Х — 3,4.

Рис. 5.11. Результат выполнения запроса Оценки студентов
Выделим легенду и вызовем контекстное меню. Выберем команд Формат легенды. Зададим размер шрифта легенды — 8 пунктов. Для просмотра полученного результата снова вернемся в режим формы.
Мастер диаграмм может сам создавать итоговые перекрестные запросы для построения диаграммы.
Для создания приведенной выше диаграммы другим способом качестве источника данных можно взять запрос Оценки студентов. Бланк запроса и результат его выполнения приведены на рис. 5.10 и 5.11.
Мастер диаграмм сам построит итоговый перекрестный запрос и предложит описанную выше цепочку диалогов. На третьем шаге, когда на экране появится макет диаграммы, нужно поменять групповую итоговую операцию по полю Оценка. Для этого следует дважды щелкнуть по названию поля Сумма_Оценка и выбрать в появившемся списке операцию Среднее. Дальнейшие действия такие же, как в вышеописанном процессе.

Рис. 5.12. Объединение таблицы и диаграммы в одной форме
Кроме внесения изменений во внешний вид диаграммы можно изменить ее источник данных. Для этого нужно открыть окно свойств диаграммы и щелкнуть по ячейке Источник строк. Затем можно или выбрать из списка новый источник данных или внести изменения в текущий источник, нажав кнопку построителя. В окно конструктора запросов будет загружен запрос — источник данных диаграммы. После внесения изменений, закрытия конструктора запросов и перехода в режим
формы Access автоматически построит диаграмму по новым данным.
Можно объединить в одной форме числовое и графическое отображение информации из БД. Например, чтобы поместить в форму сведения об итогах сдачи сессии в виде таблицы и диаграммы, нужно сначала разместить в пустой форме подчиненную форму, связав ее с запросом Средние баллы по группам. Затем следует вставить в форму диаграмму, основанную на этом же запросе, выбрав в меню пункт Вставка, а затем — Диаграмма. Будет запущен мастер Создание диаграмм и после настройки диаграммы форма приобретет вид, представленный на рис. 5.12.
5.6. Составные формыСоставная форма обычно используется для работы с информацией, находящейся в связанных таблицах. Она состоит из главной формы и одной или нескольких подчиненных форм. Форма называется подчиненной, если она содержится внутри другой формы. Обычно «контейнером» для подчиненной формы служит главная форма. Но Access позволяет создавать составные формы с двумя уровнями вложенности. В них главная форма может включать подчиненную форму, в свою очередь содержащую другую подчиненную форму.
Главная и подчиненная формы связаны между собой. Эту связь в ряде случаев Access может создать автоматически, используя информацию о связях и структуре таблиц или запросов, являющихся источниками данных для связываемых форм. Но чаще связь устанавливается самостоятельно самим пользователем в процессе создания составной формы или позднее заданием нужных значений соответствующих свойств подчиненной формы.
Обычно составная форма используется для отображения данных из таблиц или запросов, связанных отношением «один ко многим», причем главная форма содержит данные со стороны «один», а подчиненная форма — со стороны «многие». Если связь определена правильно, то просмотр информации в созданной форме будет синхронизирован: в подчиненной форме появятся лишь записи, связанные с текущей записью в главной форме. При этом подчиненная форма может быть выведена в любом режиме, а главная форма — только как простая форма.
Составная форма является также удобным средством для редактирования и добавления данных в таблицы, связанные отношением «один ко многим». При вводе новой записи в подчиненную форму она автоматически связывается с текущей записью в главной форме.
Создать составную форму можно одним из следующих способов:
• главная и подчиненная формы создаются одновременно с помощью мастера Создание форм;
• подчиненная форма создается в главной форме с помощью ЭУ Подчиненная форма/отчет;
• существующая форма добавляется в другую (главную) форму в качестве подчиненной путем «перетаскивания» ее значка мышью.
5.6.1. Использование мастера Создание формЭто самый простой способ создания составной формы. Его можно использовать в том случае, когда между таблицами, являющимися источниками данных для главной и подчиненной форм, в схеме данных установлена связь «один ко многим».
Использование этого мастера для создания простой формы рассматривалось в п. 5.2. Чтобы создать с его помощью составную форму, нужно проделать следующие действия.
1. Находясь во вкладке Формы, щелкнуть по кнопке Создать. В открывшемся окне Новая форма выбрать пункт Мастер форм и щелкнуть по кнопке ОК.
2. В первом окне мастера в списке Таблицы/запросы последовательно выбрать таблицы/запросы, поля которых будут присутствовать в форме, и переместить используемые поля из списка Доступные поля в список Выбранные поля с помощью кнопок >> и > или двойного щелчка мыши. Отметим, что в создаваемых главной и подчиненной формах эти поля будут размещены в таком же порядке, как и в списке Выбранные поля.
3. В следующем окне Access предлагает указать тип представления данных в создаваемой форме путем выбора из списка в левой части окна имени таблицы/запроса, служащей источником для главной формы. Эта таблица/запрос должна находиться на стороне «один» в связях между отобранными таблицами/запросами, заданными в схеме данных БД.
Проанализировав эти связи, Access разбивает отобранные поля на две группы, относя часть из них к главной, а остальные — к подчиненной форме. Это разбиение он выводит в правой части окна. Для создания обычной составной формы нужно выбрать значение переключателя Подчиненная форма. Если задать значение переключателя Связанная форма, то будет создана главная форма, содержащая отобранные Access поля и кнопку, нажатие которой приведет к открытию подчиненной формы.
Если окно не появляется, то это означает, что Access не может создать с помощью мастера на основе имеющейся информации о связях требуемую составную форму и для ее создания следует использовать другие средства, описываемые ниже.
4. В последующих окнах диалога задается внешний вид и стиль оформления формы. После выбора варианта в окне мастера появляется соответствующий образец.
5. Последнее диалоговое окно дает возможность изменить заданные по умолчанию имена главной и подчиненной форм и указать режим, в котором должна появиться на экране созданная форма.

Рис. 5.13. Выбор типа представления данных
Мастер всегда создает составную форму, если источниками данных главной и подчиненной формы являются две таблицы, между которыми установлена связь типа «один ко многим», причем главная форма содержит данные из таблицы со стороны «один», а подчиненная форма — данные из таблицы со стороны «многие».
Мастер часто позволяет создать составную форму и в том случае, когда подчиненная форма использует информацию из нескольких связанных таблиц. При этом в зависимости от типа их связи может быть создана как обычная составная форма, так и составная форма с двумя уровнями вложенности.
Пример 5.3. Нужно создать составную форму Оценки студентов, причем главная форма должна содержать информацию о студенте (группа, фамилия, имя и отчество), а подчиненная — итоги сдачи сессии (название экзамена, полученная оценка и дата экзамена).
В создаваемой форме в качестве источника данных главной формы можно использовать таблицу Студенты, а подчиненной — таблицы Сессия и Экзамены. Между этими таблицами установлены связи, поэтому для создания формы можно воспользоваться мастером Создание форм.

Рис. 5.14. Форма Оценки студентов в режиме формы
В первом диалоговом окне этого мастера следует выбрать:
• из таблицы Студенты — поля Группа, Фамилия, Имя и Отчество;
• из таблицы Сессия — поля Оценка и Дата экзамена;
• из таблицы Экзамены — поле Экзамен.
Используя информацию о связях таблиц в схеме данных, мастер выводит в левой части следующего окна список базовых таблиц, а в правой части — схему создаваемой формы (см. рис. 5.13). Выберем из левого списка элемент по Студенты, сообщая тем самым мастеру, что источник данных в главной форме — таблица Студенты. Если же выбрать элемент списка по Экзамены, то мастер предложит создать составную форму, главная форма в которой будет содержать единственное поле Экзамен, а остальные поля будут помещены в подчиненную форму.
В следующих диалоговых окнах укажем, что подчиненная форма должна быть табличной формой, и выберем в качестве стиля формы Обычный.
В заключение введем в качестве названия главной формы Оценки студентов, подчиненной формы — подчиненная к форме Оценки студентов и укажем в качестве завершающего действия открытие формы.
Мастер создаст и сохранит обе формы, а затем откроет созданную форму в режиме формы (см. рис. 5.14).
В этом режиме можно изменить внешний вид подчиненной формы: поменять местами поля, изменить их ширину и скрыть лишние поля. Для внесения изменений в главную форму и для изменения размеров подчиненной формы следует перейти в режим конструктора.

Рис. 5.15. Форма Оценки студентов в режиме конструктора
Чтобы осуществить дальнейшую настройку подчиненной формы (формат вывода информации, порядок сортировки, возможность внесения изменений и т.д.), нужно внести в режиме конструктора изменения в свойства ее ЭУ или самой формы. Открыть подчиненную форму в этом режиме можно, находясь в режиме конструктора в составной форме. Для этого достаточно сделать двойной щелчок по ЭУ подчиненная к форме
Оценки студентов, в который мастер помещает подчиненную форму (см. рис. 5.15). После задания новых значений свойств и закрытия подчиненной формы внесенные изменения можно просмотреть, открыв составную форму в режиме формы.
В этом примере Access связывает по полю Код студента главную и подчиненные формы, используя информацию о связях таблиц Студенты и Сессия. Сведения о полях связи между формами содержатся в свойствах подчиненной формы: Подчиненные поля и Основные поля. Для получения этой информации нужно щелчком правой кнопки мыши вызвать свойства ЭУ подчиненная к форме Оценки студентов (см. рис. 5.16).
Появление на экране новой записи в главной форме приводит к автоматическому обновлению содержимого подчиненной формы: она всегда будет содержать записи с оценками текущего студента.

Рис. 5.16. Информация о полях связи
Недостатком созданной формы является то обстоятельство, что она выводит на экран записи о студентах в порядке, определяемом значениями ключевого поля Код студента. Сортировку по другому полю, например Фамилия, проще всего задать в режиме формы или таблицы, щелкнув по этому полю, а затем по соответствующей кнопке сортировки на панели инструментов.
Для задания сортировки по нескольким полям, например Группа и Фамилия, следует указать их через запятую в свойстве главной формы Порядок сортировки. Другим способом является изменение источника данных главной формы. Для этого нужно вызвать окно свойств главной формы, щелкнуть по свойству Источник записей, а затем по появившейся справа кнопке построителя запросов. Откроется окно конструктора запросов, содержащее таблицу Студенты. Следует создать и сохранить запрос, задающий нужный вид сортировки. Его инструкция SQL заменит в свойстве Источник записей имя базовой таблицы Студенты.
Таблица Экзамен играет в этом примере вспомогательную роль, позволяя заменить в подчиненной форме коды экзаменов их названиями, и не мешает работе мастера. Однако при отборе полей для главной формы можно использовать поля только из одного источника данных. Так, попытка построить аналогичную форму, содержащую дополнительно информацию об адресах студентов (таблица Общежитие), не приведет к желаемому результату. Мастер не сможет создать составную форму.
Тем не менее нужный результат можно получить, создав при помощи мастера составную форму без информации об адресах студентов и добавив в нее эту информацию позднее, после завершения работы мастера. Для этого, как и в случае изменения порядка сортировки, следует внести изменения в свойство Источник записей главной формы. В верхнюю часть окна конструктора запросов, содержащего таблицу Студенты, нужно добавить таблицу Общежитие и изменить тип связи этих таблиц. Затем нужно включить в состав отбираемых полей все поля из таблицы Студенты (проще всего с помощью *), а также поля Комната и Общежитие из таблицы Общежитие. После сохранения запроса добавленные поля с информацией об адресах будут включены в список полей, доступных в форме, и могут быть размещены в ней непосредственно либо использованы для создания вычисляемого поля, содержащего адреса студентов.
В ряде случаев мастер автоматически синхронизирует главную и подчиненную формы, источниками которых являются не таблицы, а запросы, при условии, что между базовыми таблицами этих запросов установлена связь нужного типа.
Пример 5.4. Нужно создать составную форму, содержащую информацию об оценках по математике и английскому языку девушек группы УК-21.
Для этого достаточно выполнить следующие действия.
1. Создать и сохранить запрос Девушки группы УК-21, содержащий записи из таблицы Студенты со сведениями о девушках группы УК-21.
2. Создать и сохранить запрос Оценки по математике и английскому языку, основанный на таблице Успеваемость содержащий записи с оценками по нужным предметам.
3. Вызвать мастера Создание форм и отобрать из созданных запросов нужные поля.
4. Указать в качестве источника данных главной формы запрос Девушки группы УК-21.
5. Ответить на остальные вопросы мастера. Используя информацию о связях базовых таблиц Студенты и Успеваемость, он создаст форму, аналогичную приведенной в примере 5.3.
Эту форму можно также получить из составной формы примера 5.3 путем внесения соответствующих изменений в свойства Источник записей ее главной и подчиненной форм.
Иногда использовать мастера для создания составной формы сразу не удается, так как в БД отсутствуют нужные таблицы и/или не установлены связи между ними. В этом случае вызову мастера должно предшествовать создание недостающих таблиц, а также установление их связей с другими таблицами в БД.
5.6.2. Использование ЭУ Подчиненная форма/отчетХотя вышеописанный способ создания составной формы с помощью мастера Создание форм является самым простым, в ряде случаев он все же не позволяет достичь желаемого результата. Иногда установление связи между базовыми таблицами, необходимое для правильной работы мастера, по тем или иным причинам нежелательно или вообще невозможно. Но даже если все связи установлены, далеко не всегда мастер оказывается на высоте. Типичный пример — ситуация, когда в главной форме нужно поместить поля из нескольких таблиц (см. пример 5.3).
От всех недостатков и ограничений первого способа свободен способ создания составной формы, основанный на внедрении в главную форму подчиненной при помощи ЭУ Подчиненная форма/отчет с последующим связыванием этих форм. В этом случае также удобно использовать специального мастера, действуя по следующей схеме.
1. Определить состав таблиц/запросов и список их полей, нужных для создания как главной, так и подчиненной формы. Этот список должен включать поля, непосредственно размещаемые в форме или входящие в состав выражений вычисляемых полей, а также поля, используемые для связи между формами. Поля связи можно не размещать в формах, но они обязательно должны быть доступными в каждой из них.
2. Создать, если это необходимо, и сохранить запросы, содержащие отобранные на первом шаге поля. В этих запросах можно задать условия отбора нужной информации и порядок ее сортировки.
3. Создать главную форму на базе таблицы или сохраненного запроса и установить для нее режим по умолчанию Простая форма.
4. Включить, если она не включена, кнопку Мастера на панели элементов. Затем нажать кнопку Подчиненная форма/отчет на этой же панели, установить указатель мыши на то место в главной форме, куда нужно поместить подчиненную форму, и нажать левую кнопку. На экране появится первое окно диалога мастера Создание подчиненных форм и отчетов. Так как подчиненная форма создается на базе таблицы или запроса, нужно щелкнуть по кнопке Далее и перейти ко второму шагу.
5. Во втором окне диалога нужно выбрать таблицу (запрос), являющуюся источником данных для подчиненной формы, и перебросить нужные поля из списка Доступные поля в список Выбранные поля. В список выбранных полей должны быть обязательно включены поля, используемые для связи.
6. Затем мастер предлагает установить связь между формами. Можно воспользоваться списком возможных связей или самостоятельно выбрать поля связи между главной и подчиненной формами.
7. В последнем окне диалога задается имя подчиненной формы, которая сохраняется Access как отдельная форма. Для проверки полученного результата нужно перейти в режим формы.
Пример 5.5. Нужно создать составную форму Средний балл по группам. Главная форма должна содержать номер группы, а подчиненная — список студентов этой группы и их оценки.
1. Начнем с создания источника данных главной формы. Она должна содержать номера групп из поля Группа таблицы Студенты. Однако использовать саму таблицу в качестве источника данных нельзя, так как значения в поле Группа дублируются. Поэтому следует сначала создать форму, не указывая источника ее данных. Затем открыть окно ее свойств, щелкнуть по свойству Источник записей, а потом — по кнопке построителя запросов. Откроется окно конструктора запросов, в котором нужно создать и сохранить запрос к таблице Студенты, отбирающий уникальные номера групп. Для этого проще всего включить в бланк запроса поле Группа и щелкнуть по кнопке. После выхода из построителя запросов в свойстве Источник записей появится инструкция SQL: SELECT Студенты.Код_Группа FROM Студенты GROUP BY Студенты.Группа;
2. Источник данных для подчиненной формы у нас фактически уже создан — это перекрестный запрос Средний балл на курсе. Однако для использования в подчиненной форме его нужно немного изменить: вызвать в режиме конструктора список свойств и перечислить в свойстве Заголовки столбцов заголовки столбцов (названия предметов). Сохраним новый запрос под тем же именем.
3. Поместим поле Группа в главной форме и с помощью мыши увеличим размеры области данных. Далее щелкнем по кнопке Подчиненная форма/отчет на панели элементов и выделим мышью место в главной форме, которое должна занимать подчиненная форма. Затем ответим на вопросы мастера Создание подчиненных форм и отчетов. Так как форма создается на базе запроса, щелкнем по кнопке Далее, а на следующем шаге выберем запрос Итоги сессии на курсе и отберем все его поля. Затем требуется указать поля связи между формами. Можно выбрать связь из списка, но мы определим ее сами, указав в качестве поля связи поле Группа (см. рис. 5.17). Мастер дал подчиненной форме название подчиненная форма Итоги сессии на курсе и на этом его работа завершена.
Дальнейшую разработку формы будем проводить вручную. Проделаем следующие действия:

Рис.5.17. Определение полей связи
1. С помощью команд Вид и затем Заголовок/примечание формы добавим в главную форму раздел Заголовок формы. В заголовок добавим надпись и введем в нее текст Итоги сессии по группам, установив размер шрифта — 18 и цвет текста — белый. Затем выделим надпись, скопируем ее в буфер обмена и вставим в заголовок формы. Изменим цвет текста у надписи-копии на темный и расположим ее чуть правее исходной надписи, создав тем самым эффект тени у букв.
2. Удалим созданную мастером надпись к подчиненной форме. Затем выделим поле Группа и его надпись. Установим для них полужирный шрифт 10, выравнивание по центру, размер — по размеру данных и разместим в центре формы.

Рис. 5.18. Созданная мастером подчиненная форма
3. Перейдем в режим формы и скроем в подчиненной форме столбец Группа. Для этого щелкнем по этому столбцу и выполним команды Формат/Скрыть столбцы. Отметим, что для отображения скрытого столбца нужно открыть подчиненную форму в режиме таблицы и выполнить команды Формат/Отобразить столбцы. Затем настроим ширину остальных столбцов, изменив при необходимости размеры подчиненной формы.
4. Чтобы изменить название столбца Код студента на № зач.кн., вызовем в режиме конструктора подчиненную форму. Как видно на рис. 5.18, мастер поместил надписи полей в заголовке формы, а сами поля — в области данных, причем в качестве заголовков в составной форме появляются именно названия полей, а не их надписей. Откроем свойства поля Код студента и заменим его старое имя, появляющееся в качестве заголовка столбца, новым именем. После закрытия формы внесенные изменения будут доступны для просмотра.

Рис. 5.19. Добавление итоговых полей в подчиненную форму
5. Последний этап создания формы — включение в нее итоговой информации. Сначала нужно добавить в раздел Примечание формы подчиненной формы четыре вычисляемых поля, содержащие средние баллы по экзаменам. Для этого следует щелкнуть мышью по ЭУ Поле, а затем — в области примечания. Access вставит в примечание формы свободное поле с надписью. Надпись нужно удалить, далее вызвать свойства поля и ввести в качестве значения свойства Данные: =Avg([Английский]). Затем с помощью операций копирования и вставки создадим три копии этого поля и внесем в их свойство Данные соответствующие изменения в названия итоговых полей (см. рис. 5.19).
Пусть Access дал этим полям следующие имена: Поле 14, Поле 15, Поле 16 и Поле 17. Они будут использованы в ссылках на значения итоговых полей из главной формы.
После создания итоговых полей в подчиненной форме ее следует закрыть и вызвать в режиме конструктора главную форму. В ней создадим вычисляемое поле без надписи и введем в его свойство Данные ссылку на значение итогового поля в подчиненной форме в виде
=[подчиненная форма Итоги сессии на курсе]![Поле 14]
Установим значения его свойств Формат поля – Фиксированный и Число десятичных знаков – 2. Затем создадим три копии этого поля, изменим в свойстве Данные их ссылки на поля подчиненной формы и разместим эти поля под соответствующими столбцами с оценками.
Добавим надпись Средние баллы по предметам. При открытии главной формы в режиме формы в добавленных полях появятся значения средних баллов текущей группы по предметам (см. рис. 5.20).

Рис. 5.20. Составная форма с итоговыми полями
5.6.3. Добавление готовой подчиненной формыМожно создать составную форму путем «перетаскивания» с помощью мыши в главную форму уже существующей формы в качестве подчиненной. Для этого нужно выполнить следующие действия:
1. Открыть главную форму в режиме конструктора.
2. Вернуться в окно БД, выбрать подчиненную форму и «перетащить» ее в окно главной формы. Access создаст ЭУ Подчиненная форма/отчет.
3. Если это необходимо, следует изменить размеры и положение подчиненной формы.
4. Перейти в режим формы для просмотра полученного результата. Access автоматически устанавливает связь между формами, если выполнено одно из следующих условий:
• Источники данных для обеих форм — связанные таблицы. В качестве полей связи будут использованы поля связи этих таблиц.
• Таблица – источник данных главной формы имеет ключевое поле, а таблица – источник данных подчиненной формы имеет одноименное поле с таким же или совместимым типом данных. В качестве полей связи будут использованы эти поля.
Если формы базируются на запросах, то этим условиям должны удовлетворять базовые таблицы для запросов.
Если Access не смог установить связь между формами, ее следует определить самостоятельно. Для этого нужно, находясь в главной форме, открытой в режиме конструктора, открыть бланк свойств ЭУ подчиненной формы и в свойстве Подчиненные поля задать имя поля (полей) связи подчиненной формы. В свойстве Основные поля задается имя поля (полей) связи главной формы. Тип данных и размер полей связи должны быть совместимыми. Если полей связи несколько, их имена нужно перечислить в одинаковом порядке, разделяя точками с запятой.
5.6.4. Использование для связи других ЭУВо всех рассмотренных выше примерах полями связи главной формы служили поля ее базовой таблицы/запроса. Их имена задавались в свойстве Основные поля подчиненной формы, а значения использовались Access для отбора выводимых на экран записей в подчиненной форме. Но в качестве поля связи в свойстве Основные поля можно указать также имя другого ЭУ, размещенного в главной форме. Обычно для этой цели используется поле со списком, реже — список или группа переключателей. Для отбора записей можно использовать несколько ЭУ.
В этом случае главную форму не нужно связывать с каким-либо источником данных, так как отбор записей в подчиненной форме производится на основе совпадения значений ее поля (полей) связи с выбранными значениями ЭУ.
Пример 5.6. Создадим форму для просмотра распределения числа различных оценок по данному экзамену по группам. Главная форма должна содержать группу из четырех переключателей, каждый из которых соответствует одному из экзаменов. После выбора переключателя в подчиненной форме должна появиться таблица с распределением оценок между группами по выбранному экзамену.
1. Для связи между группой переключателей и подчиненной формой будем использовать значения кодов экзаменов. Разработку формы начнем с размещения группы переключателей в главной форме. Для этого создадим пустую форму и щелкнем по кнопке Группа переключателей на панели элементов, а затем по тому месту в форме, где мы хотим поместить эту группу. Начнет работу мастер Создание группы переключателей. Сначала он предложит создать подписи к переключателям. Введем в качестве подписей названия экзаменов: Английский, Информатика, История и Философия. На следующем шаге в качестве переключателя, используемого по умолчанию, выберем: Информатика. Затем укажем значения для каждого переключателя. При выборе переключателя его значение будет являться значением всей группы. Поэтому в качестве значений переключателей нужно ввести коды соответствующих экзаменов: 2, 1, 3, 4. Далее мастер предлагает выбрать тип ЭУ и оформление. Примем используемые по умолчанию тип переключатели и оформление вдавленное. В качестве подписи к группе введем текст: Выберите экзамен. На этом работа мастера завершена.
2. На базе таблиц Студенты и Сессия создадим перекрестный запрос Распределение оценок, содержащий в качестве заголовков строк поля Группа и Код экзамена, а в качестве заголовка столбцов — поле Оценки. Значения итоговой таблицы — число полученных оценок (см. рис. 5.21). В свойстве запроса Заголовки столбцов нужно также перечислить названия столбцов: 5; 4; 3; 2.

Рис. 5.21. Бланк запроса Распределение оценок
3. Добавим в форму ЭУ Подчиненная форма/отчет, укажем, что он основан на созданном выше запросе и отберем все поля из запроса.
4. Для установления связи между группой переключателей и подчиненной формой в свойстве Основные поля укажем имя группы Группа0, а в свойстве Подчиненные поля — имя поля Код экзамена. После настройки созданная форма имеет вид, представленный на рис. 5.22.

Рис. 5.22. Форма Распределение оценок по экзамену
6. Отчеты6.1. Основные понятияОтчеты — форма представления информации для использования и распространения. Отчеты — итоговые документы для лиц, которым была предназначена создаваемая БД. Если форма — документ разработчика и лиц, работающих с информацией в БД, то отчеты — инструмент «хозяев» БД, позволяющий им в нужный момент иметь информацию для личного использования или передачи другим лицам. Отчет нужен для подведения итогов деятельности за период подсчетов итоговых сумм и т.д.
Структура отчета (см. рис. 6.1) напоминает структуру формы за одним существенным исключением — возможностью добавления нескольких пар новых разделов, если возникает потребность группировки данных по каким-либо признакам.

Рис. 6.1. Структура отчета
Возможность группирования данных, - это, пожалуй, главное отличие создания отчета от создания формы. Как реализовать группирование, мы подробно рассмотрим ниже, а пока кратко рассмотрим саму идею группирования и ее влияние на структуру разделов.
Предположим, что мы строим отчет по таблице, описывающей реализацию товаров различным клиентам. Можно составить отчет по разным «срезам» такой таблицы. Например, составить отчет, характеризующий заказы каждого клиента. В этом случае основа группирования данных — клиенты. Все заказы разбиваются на группы, относящиеся к одному клиенту.
Другой вариант — рассмотреть, как реализовывались товары различных видов. В этом случае основа группирования — отдельный товар, а все данные о заказах можно разбить на группы, относящиеся к конкретному товару. Группы могут быть вложенными. Например, в первом случае, внутри группирования по клиентам, можно сгруппировать заказы каждого клиента по отдельным товарам. Каждое группирование сопровождается, как правило, появлением двух разделов — заголовка группы и примечания группы. В заголовке обычно указывается информация о поле — источнике группирования (клиенты, товары) и др. В области примечания можно подвести итоги группирования — число заказов каждого клиента, сумму стоимости всех заказов каждого клиента, число заказов каждого товара и т. д.
Если группы вложенные, можно подвести промежуточные итоги, т. е. число заказов конкретного товара, сделанных клиентом. Общее число вложений групп — до 10. Свойства разделов отчета совпадают со свойствами разделов формы, хотя у форм и отчетов существуют различные режимы. Напомним, что форма могла находиться в трех режимах: конструктора, работы (формы) и предварительного просмотра.
У отчета тоже может быть три режима, причем два из них такие же: режим предварительного просмотра и режим конструктора. Кроме того, отчет может находиться в режиме образца. Этот режим похож на режим предварительного просмотра, но отличается от него тем, что в режиме образца показывается не весь отчет, а только его часть, с целью оценки того, как будет выглядеть весь отчет. Режим, подобный режиму формы, естественно отсутствует, так как с отчетом не работают как с формой или запросом.
Некоторые разделы отчета, такие как колонтитулы и примечания, имеют дополнительные свойства, более тонкие, чем у аналогичных разделов форм. Так, заголовок отчета может быть напечатан отдельно на первой странице, без колонтитулов.
Надо отметить, что в отчете дублируются и многие другие свойства различных объектов, изучавшихся нами в формах.
В отчетах, как и в формах, размещаются элементы управления: поля, надписи и т. д. Как и в формах, они могут быть связанными, свободными и вычисляемыми в зависимости от источника информации, реализуемой в элементе управления.
6.2. Создание отчетаОтчеты, как и формы, можно создавать с помощью мастеров или самостоятельно. Источником данных для отчета также являются таблицы и запросы. Если в отчете требуется представить данные из разных таблиц, имеет смысл предварительно создать многотабличный запрос, а затем строить отчет на его основе.
Чтобы создать отчет, нужно в окне БД перейти на вкладыш Отчеты и нажать кнопку Создать. Появится окно диалога Новый отчет. Оно аналогично окну создания формы. Ваши действия начинаются с выбора таблицы/запроса.

Рис. 6.2. Создание Нового отчета
Предусмотрено автоматическое создание двух типов отчетов: ленточного и в один столбец.
В этих отчетах имеется заголовок, содержащий имя отчета, совпадающее с названием таблицы или запроса, и дата создания отчета. Нижний колонтитул содержит номер страницы. В области данных содержатся все поля таблицы (запроса), расположенные в один столбец или в табличном виде (в ленточном отчете). На одной странице реализуется несколько записей таблицы (запроса). Пример ленточного отчета приведен на рис. 6.3.

Рис. 6.3. Пример ленточного отчета
6.2.1. Создание отчета с помощью Мастера отчетовИспользование мастера по разработке отчетов является быстрым и защищенным от ошибок способом создания нового отчета. Отчет, созданный мастером, можно использовать в том виде, в котором он был создан, или улучшить путем внесения изменений.
Чтобы создать отчет с помощью мастера по разработке отчетов, надо:
1. Находясь в окне базы данных, указать на корешок Отчет и нажать кнопку мыши (или выбрать Отчеты в меню Вид).
2. Нажмите кнопку Создать (или нажать кнопку Новый объект на панели инструментов, а затем выбрать Отчет. На экране появится окно диалога Новый отчет.
3. Из списка выбрать таблицу/запрос, содержащий данные, которые следует представить в отчете.
4. Выбрать способ создания отчета — Мастер отчетов. На экране появится первое окно диалога Создание отчета.
5. Переслать необходимые для отчета поля из списка Доступных полей в список Выбранных.
6. В следующем окне задать необходимые уровни группировки.
7. Данные в отчете можно отсортировать. Можно задать сортировку до четырех уровней, по убыванию или возрастанию.
8. На следующем этапе задается макет отчета. Он может быть табличный, в один столбец или выровненный. Вид выбранного макета появляется на экране. Здесь же можно задать ориентацию данных в отчете — книжную или альбомную. Если в отчете выводится много полей, можно задать настройку ширины полей для размещения их на странице. Но при этом в ходе просмотра образца отчета можно ожидать что либо в заголовках полей, либо в информации будут выводиться неполные данные. Придется эти поля форматировать в режиме конструктора.
9. В следующем окне диалога выбирается стиль оформления. Он может быть выделенным, компактным, простым, строгим, формальным или черно-белым. Выбранный стиль отображается на экране.
10. В последнем окне нужно задать имя отчета. Создание отчета мастером закончено. Вы можете просмотреть образец отчета. Для этого можно нажать кнопку или выполнить пункт Предварительный просмотр меню Файл. Если отчет нужно несколько изменить, воспользуйтесь Конструктором.
6.2.2. Создание отчета с помощью КонструктораПользователь может начать с пустого отчета и самостоятельно разместить в нем все необходимые поля, надписи и другие элементы управления.
Для создания отчета без помощи мастера нужно, находясь в окне БД, щелкнуть по корешку Отчет, а затем по кнопке Создать.
На экране появится окно диалога Новый отчет. Из списка Выбор таблицы/запроса выберите таблицу/запрос, содержащую данные, которые следует представить в отчете. Если отчет не должен содержать данные, неделайте выбор из этого списка. Задайте способ создания отчета — Конструктор.
На экране появится окно конструктора отчетов. Чтобы вывести на экран список полей базовой таблицы (или запроса), нажмите кнопку Список полей на панели инструментов.
Рабочие экраны при создании отчета и формы практически совпадают. Мы не будем останавливаться на инструментарии, рассмотренном при создании форм (это создание полей, надписей, вычисляемых полей и т. д.). Например, для печати эмблемы фирмы можно в заголовке отчета создать ЭУ Рисунок или Свободная рамка объекта. Все ЭУ создаются в разделах отчета теми же способами, что и в формах. Остановимся на принципиальном отличии отчета от формы — создании групп.
6.3. Сортировка и группированиеОбычно записи в отчете требуется расположить в определенном порядке. В меню Вид имеется подкоманда Сортировка и группировка. С помощью этой команды можно просто провести сортировку отчетных данных или можно определить группирование данных. Сортировка задается по определенному полю (наиболее часто используемый способ) или по выражению, т. е. вычисляемому полю, либо по первой букве символьного поля. Полей сортировки может быть до 10. При выборе команды Сортировка и группировка на экране появляется окно следующего вида (см. рис. 6.4).

Рис. 6.4. Окно Сортировка и группировка
Для задания просто сортировки не нужно обращаться к свойствам групп. Если же мы хотим сгруппировать данные по какому либо полю, нужно указать это поле в верхней части окна и установить «Да» в заголовке группы или примечании. Если нужно создать вложенную группировку, нужно внести несколько полей в верхнюю часть окна и открыть заголовки (примечания) в нижней части. Окно конструктора при этом будет содержать следующие разделы:

Для того чтобы отчет выглядел хорошо, нужно разместить элементы управления в соответствующих разделах. Например, так, как это выглядит на рис. 6.5.
Как видно на этом рисунке, в бланке отчета отсутствует раздел примечаний группы Курс, т.к. в окне Сортировка и группировка в свойствах этой группы было задано значение «Нет» в строке Примечание группы.
После задания группировок по полям Курс и Группа в разделе Примечания группы Группа добавлено два ЭУ — надпись В группе и вычисляемое поле с выражением =Count(Фамилия). Кроме того надписи к полям, расположенным в области данных, обычно размещаются в области верхнего колонтитула. В этом отчете поля Курс и Группа размещены в областях заголовков групп вместе со своими надписями.
При создании групп важно правильно задать значения или диапазон значений, с которых начинается новая группа. Эти значения задаются в свойствах Группировка и Интервал в окне Сортировка и группировка. Свойство Группировка указывает, как должны быть сгруппированы данные. По полному значению можно группировать поля: текстовые, денежные, числовые, счетчики, даты/время. Текстовые поля, кроме того, можно группировать по определенному числу первых символов. Счетчики, денежные, числовые поля и даты/время можно группировать по диапазону значений.
В свойстве Группировка диапазон значений можно выбрать из списка, который предлагается для каждого типа поля группировки. Например, если поле группировки имеет тип дата/время, то будет предложен следующий список интервалов: по полному значению, по годам, по кварталам, по месяцам, по неделям, по дням, по часам, по минутам. Для счетчиков, денежных, числовых полей можно кроме группировки по полному значению задавать группировку по интервалу. При этом нужно задавать значение в свойстве Интервал любым числом, допустимым для группируемого поля.

Рис. 6.5. Окно Конструктора отчета
Например, для поля типа Счетчик свойство Группировка имеет значение Интервал, а в свойстве Интервал задано значение 5. Записи в отчете будут сгруппированы в следующие группы: 0-4,5-9,10-14 и т. д. Или для группового поля Дата продажи задано свойство Группировка — По месяцам, а значение в свойстве Интервал – 6. Продажи будут сгруппированы в отчете по интервалам в шесть месяцев.
Если в режиме конструирования отчета возникает необходимость переноса уже созданного ЭУ из одного раздела в другой, перемещение нужно начать тогда, когда указатель мыши примет вид раскрытой руки, либо можно выполнить это действие через буфер обмена.
Размеры разделов изменяются при перемещении их нижних границ, когда указатель принимает вид двунаправленной стрелки.
6.4. Режимы окна отчетаОкно отчета может находиться в одном из трех режимов: режиме конструктора, режиме просмотра образца и режиме предварительного просмотра:
Режим конструктора предназначен для создания новых и изменения существующих отчетов;
Режим просмотра образца предназначен для предварительной оценки правильности шрифтового оформления и расположения элементов управления в отчете. В этом режиме изображаются все разделы отчета, а также несколько записей в области данных. При этом выполняется сортировка и группирование данных, однако не используются ни условия отбора, ни объединение таблиц, определенные в базовом запросе.
В режиме предварительного просмотра отчет выглядит на экране так, как он выглядел бы, будучи напечатан. Напечатанный отчет может выглядеть иначе, чем на экране в режиме предварительного просмотра, если для его оформления используются немасштабируемые шрифты. Масштабируемыми являются шрифты Тгyе Туре и некоторые другие шрифты.
При просмотре отчета в режиме просмотра образца или в режиме предварительного просмотра можно изменять масштаб изображения отчета.
Чтобы перейти в режим просмотра образца из режима конструктора, выберите Образец в меню Вид (или нажмите кнопку Образец на панели инструментов). Для возврата в режим конструктора нажмите кнопку Закрыть на панели инструментов в окне образца.
Чтобы перейти в режим предварительного просмотра из режима конструктора, выберите Предварительный просмотр в меню Файл (или нажмите кнопку Предварительный просмотр на панели инструментов). Для возврата в режим конструктора нажмите кнопку Закрыть на панели инструментов в окне предварительного просмотра.
Чтобы перейти в режим предварительного просмотра из окна базы данных, находясь в окне базы данных, укажите на корешок Отчет и нажмите кнопку мыши, а затем выберите нужный отчет, после чего выберите Предварительный просмотр в меню Файл (или нажмите кнопку Просмотр на панели инструментов).
6.5. Печать отчетаЧтобы напечатать готовый отчет, нужно выполнить команду Печать из меню Файл. Напечатанный отчет может содержать пустые страницы. Как правило, это является следствием того, что размеры отчета превышают размер бумаги, которая используется для печати.
Чтобы в отчете не было пустых страниц, сумма полной ширины отчета с шириной правого и левого полей не должна превышать ширину бумаги, указанную при настройке печати (смотрите следующую формулу):
Ширина отчета + Левое поле + Правое поле <= Ширина бумаги
Более подробные сведения об устранении пустых страниц можно найти в справочной системе по ключевому слову печать.
Если отчет содержит слишком много пустого пространства вокруг разделов и элементов управления, то его можно уменьшить, изменив размеры и определив некоторые свойства разделов и элементов управления. При печати отчета очень важно правильно задать свойства отчета, его разделов и некоторых ЭУ. Свойства отчета вызываются двойным щелчком мыши по прямоугольнику на пересечении горизонтальной и вертикальной линеек, либо из контекстного меню, вызванного, когда указатель мыши находился в серой области бланка отчета вне разделов. Свойства разделов вызываются двойным щелчком мыши по серой полосе с названием раздела. Свойства любого ЭУ вызываются двойным щелчком мыши по этому ЭУ.
Для печати всего отчета важны свойства Верхний колонтитул и Нижний колонтитул. Возможные значения:
• Все страницы — колонтитулы печатаются на всех страницах;
• Без заголовка — колонтитулы не печатаются на тех страницах, где печатался заголовок отчета;
• Без примечания — колонтитулы не печатаются на тех страницах, где печаталось примечание отчета;
• Без заголовка/примечания — колонтитулы не печатаются на тех страницах, где печатались заголовок или примечание отчета.
Для печати разделов отчета важны свойства Конец страницы и Не разрывать. Свойство Конец страницы может принимать значения:
• Отсутствует — расставлять страницы не обращая внимание на начало/конец раздела;
• До раздела — поставить конец страницы перед началом раздела;
• После раздела — поставить конец страницы после конца раздела;
• До и после раздела — поставить конец страницы до начала и после конца раздела.
Для того чтобы в приведенном в качестве примера отчете Список студентов каждая группа печаталась на отдельной странице, нужно задать значение После раздела в свойстве Конец страницы раздела Примечание группы Группа. Чтобы разделы не разрывались при печати, нужно задавать значение «Да» в свойстве Не разрывать.
При печати отчета важно правильно выделить место для ЭУ, особенно если это длинное символьное поле или поле типа Mемо. У ЭУ типа поле есть свойства Расширение и Сжатие. Если задать значение «Да» в свойстве Расширение, при необходимости будет автоматически увеличиваться высота области, выделенной полю на бланке отчета. Раздел, в котором находится такой ЭУ, автоматически получает значение «Да» в свойстве Расширение. По умолчанию вместо полей, содержащих пустые значения, на страницах отчета остается пустое пространство. Для удаления этого пустого пространства следует использовать свойство Сжатие. Поле, имеющее значение «Да», в этом свойстве не занимает места при печати отчета, если содержит пустое значение или строку нулевой длины.
Лабораторная работа № 1Изучение структуры, свойств и создание таблиц реляционной базы данныхЦель работы: закрепление теоретических знаний, полученных при изучении разделов курса «Информационные технологии», посвященных рассмотрению понятий: структура данных, реляционная таблица и ее параметры, ключи и виды упорядоченности баз данных (БД), приобретение навыков разработки и формирования таблиц реляционных БД.
Задание для самостоятельной работы: изучить краткие теоретические сведения; изучить состав, структуру и параметры реляционных таблиц БД; ознакомиться с программой MS Access.
Краткие теоретические сведения
Сбором и накоплением данных, их корректировкой и сортировкой, отбором необходимых данных и прочими операциями занимается в той или иной мере любой специалист независимо от сферы деятельности. Особенно это актуально для тех, кто работает в информационной сфере производства, где основным сырьем и продуктом является информация. Среди программных продуктов, обеспечивающих переработку данных, весьма популярна система управления базой данных Access, входящая в пакет прикладных программ Microsoft Office.
База данных в Access представляет собой единый большой объект, который объединяет такие составляющие, как таблицы, отчеты, запросы, формы и т.д., и позволяет хранить их в едином дисковом файле с расширением *.mdb.
Достоинством системы управления базами данных (СУБД) MS Access является то, что она имеет очень простой графический интерфейс, который позволяет не только создавать собственную базу данных, но и разрабатывать простые и сложные приложения. Для анализа хранящейся в базе данных MS Access информации можно создавать различные отчеты, которые позволяют извлекать необходимые данные, группировать и сортировать их в нужном виде, вычислять итоговые значения по группам и в целом по всем отработанным записям. Отчеты могут быть дополнены рисунками, диаграммами, содержательными комментариями, могут быть выведены на печать, преобразованы в документ Word или опубликованы на Web.
Запуск MS Access и открытие баз данных. Для того чтобы запустить MS Access, необходимо нажать: кнопку «Пуск» на панели задач в нижней части рабочего стола;
открыть в главном меню пункт «Программы»;
выбрать программу MS Access.
Для того чтобы открыть существующую базу данных, можно воспользоваться одним из трех способов:
выбрать в меню из списка ранее открывавшихся файлов требуемый файл
выбрать файл из списка в области задач, которая расположена в правой части окна приложения;
выбрать команду «Открыть» в меню «Файл» и затем нужный файл в диалоговом окне «Открытие файла базы данных».
В последнем случае в диалоговом окне обычно по умолчанию отображается содержимое папки «Мои документы» или какой-либо другой (в зависимости от установленной на компьютере операционной системы). Найдя в списке необходимую базу данных, нужно выделить файл и нажать кнопку «Открыть» или дважды щелкнуть по элементу списка. В главном окне MS Access появится окно выбранной базы данных. Открыть файл можно в одном из четырех режимов:
в режиме коллективного доступа. При открытии файла базы данных в этом режиме доступ к нему будет разрешен другим пользователям, они могут открыть его и также работать с объектами базы данных. Причем все пользователи будут иметь возможность как просматривать данные, так и изменять их;
в режиме монопольного доступа. В этом случае никто другой не сможет открыть этот файл, пока он используется;
в режиме коллективного доступа только для чтения. В этом случае никто не сможет изменять ни данные в таблицах, ни другие объекты базы данных;
в режиме монопольного доступа только для чтения. Открывает ся файл только для чтения и одновременно запрещается другим пользователям открывать этот файл. Выбрать нужный режим можно из списка, который раскрывается при нажатии стрелки справа от кнопки «Открыть». По умолчанию файл базы данных открывается в режиме коллективного доступа.
Создание новой базы данных. Для создания новой базы данных необходимо воспользоваться областью задач «Создание файла» окна приложения MS Access. Эта область появляется справа при первом запуске MS Access. Если MS Access уже использовался для работы с каким-либо файлом и после его закрытия в главном окне этой области нет, можно:
выбрать команду «Создать» из меню «Файл»;
нажать кнопку «Создать» на панели инструментов.
Любое из этих действий приведет к открытию справа области задач «Создание файла».
После этого, чтобы создать базу данных, необходимо:
выбрать элемент «Новая база данных». Появится диалоговое окно «Файл новой базы данных» с содержимым папки «Мои документы»;
в раскрывающемся списке «Папка» открыть папку, в которой будет храниться создаваемая база данных;
в поле ввода «Имя файла» указать имя создаваемого файла и нажать кнопку «Создать». По умолчанию MS Access присваивает новой базе данных имя dbl, а если база с именем dbl уже существует, то db2 и т. д. После нажатия кнопки появится окно созданной базы данных.
Создание таблицы. Основными объектами MS Access являются таблицы. Список таблиц, составляющих базу данных приложения, появляется в окне базы данных при первом открытии приложения. Кроме этого, MS Access создает системные таблицы, в которых хранится информация обо всех объектах приложения, и эти таблицы при необходимости также могут отображаться в окне базы данных. Создать таблицу можно в режиме конструктора путем задания имен полей, их типов и свойств. Для создания таблицы необходимо: дважды щелкнуть левой кнопкой мыши на ярлыке «Создание таблицы» с помощью конструктора или нажать на кнопку «Создать» в верхней части окна базы данных, выбрать из списка в окне «Новая таблица» элемент «Конструктор». В том и в другом случае откроется пустое окно конструктора таблиц; в окне конструктора таблиц в столбец «Имя поля» ввести имена полей создаваемой таблицы; в столбце «Тип данных» для каждого поля таблицы выбрать из раскрывающегося списка тип данных, которые будут содержаться в этом поле; в столбце «Описание» можно ввести описание данного поля (не обязательно); в нижней части окна конструктора таблиц на вкладках «Общие» и «Подстановка» ввести свойства каждого поля или оставить значения свойств, установленные по умолчанию; после описания всех полей будущей таблицы нажать кнопку «Закрыть» (в верхнем правом углу окна таблицы); на вопрос «Сохранить изменения макета или структуры таблицы <имя таблицы>?» нажать кнопку «Да»; в окне «Сохранить как» в поле «Имя таблицы» ввести имя создаваемой таблицы; в ответ на сообщение «Ключевые поля не заданы» и вопрос «Создать ключевое поле сейчас?» нажать кнопку «Да», если ключевое поле необходимо, или кнопку «Нет», если такого не требуется.
При создании таблиц в режиме конструктора приходится задавать имена таблиц и полей в таблицах. При этом необходимо придерживаться ряда правил.
1. Имена полей в таблице не должны повторяться.
2. Имена полей могут содержать не более 64 символов, включая пробелы.
Имена полей могут содержать любые символы, включая буквы, цифры, пробелы, специальные символы, за исключением точки (.), восклицательного знака (!), апострофа ( ) и квадратных скобок ([ ]). Кроме того, имена полей не должны начинаться с пробела или управляющего символа.
После ввода имени поля необходимо задать тип данных, которые будут находиться в этом поле. Наиболее удобным способом является выбор типа из списка, но наименование типа можно ввести и вручную. Обычно при ручном вводе конструктор автоматически предлагает закончить вводимое название типа. В MS Access имеются следующие типы данных:
текстовый – символьные или числовые данные, не требующие вычислений. Поле данного типа может содержать до 255 символов. Размер текстового поля задается с помощью свойства «Размер поля» (FieldSize), в котором указывается максимальное количество символов для данного поля. При необходимости ввести строку большего размера, чем указано в данном свойстве, надо значение свойства изменить, так как место под дополнительные символы не резервируется. Независимо от длины текстового поля оно хранится в базе данных MS Access в записи переменной длины. MS Access не занимает память под неиспользуемую часть текстового поля в записи, что уменьшает общий размер базы данных;
поле MEMO – поле MEMO, предназначенное для ввода текстовой информации, по объему превышающей 255 символов. Такое поле может содержать до 65 535 символов. Этот тип данных отличается от типа «Текстовый» тем, что в таблице хранятся не сами данные, а ссылки на блоки данных, хранящиеся отдельно. За счет этого ускоряется обработка таблиц (сортировка, поиск и т. п.). Поле типа MEMO не может быть ключевым или проиндексированным;
числовой – числовой тип, применяющийся для хранения числовых данных, используемых в математических расчетах, и имеющий несколько подтипов. От выбора подтипа (размера) данных числового типа зависит точность вычислений. Для задания подтипа числовых данных служит свойство «Размер поля». Данные этого типа могут содержаться в 1, 2, 4, 8 или 16 байтах. Обычно по умолчанию используется подтип «Длинное целое», который занимает 4 байта и представляет собой число
в пределах от –2 147 483 648 до +2 147 483 647. Но, кроме этого типа, можно указать «Байт» (1 байт), «Целое» (2 байта), «Одинарное с плавающей точкой» (4 байта), «Двойное с плавающей точкой» (8 байтов), «Десятичное» (12 байтов), «Код репликации» (16 байтов);
дата/время – тип для представления даты и времени. Он позволяет вводить даты с 100 по 9999 год. Размер поля – 8 байтов. Даты и время хранятся в специальном фиксированном числовом формате. Дата является целой частью значения поля этого типа, а время – его дробной частью. MS Access предоставляет большой выбор форматов отображения даты и времени;
денежный – тип данных, предназначенный для хранения данных, точность представления которых колеблется от 1 до 4 десятичныхзнаков. Целая часть данного типа может содержать до 15 десятичных знаков;
счетчик – поле, содержащее 4-байтный уникальный номер, определяемый MS Access автоматически для каждой новой записи либо случайным образом, либо путем увеличения предыдущего значения на 1. Значения полей, имеющих тип «Счетчик», обновлять нельзя. Максимальное число записей в таблице, имеющей поле «Счетчик», не должно превышать двух миллиардов;
логический – логическое поле, которое может содержать только два значения, интерпретируемых как «Истина»/«Ложь». Поля логического типа не могут быть ключевыми, но их можно индексировать;
поле объекта OLE, содержащее ссылку на OLE-объект (лист Excel, документ Word, звук, рисунок и т. п.). Объем объекта ограничивается имеющимся в наличии дисковым пространством. Тип объекта OLE не указывается в свойствах поля объекта OLE. Он зависит от приложения, использованного для создания объектов OLE, которые хранятся в этом поле. Упаковщик объектов позволяет внедрять файлы, созданные приложениями, которые не являются серверами объектов OLE. Например, он позволяет внедрить текстовые файлы в качестве объектов в таблицы MS Access. В поле объекта OLE могут храниться произвольные данные, в том числе и данные нескольких типов;
гиперссылка, дающая возможность хранить в поле ссылку на произвольный фрагмент данных внутри файла или Web-страницы на том же компьютере, в интранет или в Интернет. Гиперссылка состоит из четырех частей: отображаемого текста, адреса (путь к файлу или странице), дополнительного адреса (положение внутри файла или страницы) и текста всплывающей подсказки. Каждая часть гиперссылки может содержать до 2048 символов. Поле этого типа не может быть ключевым или индексированным.
Для большинства типов данных характерно свойство «Подпись». С помощью этого свойства можно задать названия полей таблицы, которые выводятся в различных режимах (в надписях, присоединенных к элементам управления формы, в заголовке столбца режима «Таблицы»; строке заголовка в режиме «Формы», заголовке отчета, выводящегося в режиме предварительного просмотра). Поле может содержать до 2048 символов. Кроме того, для большинства типов данных существует свойство «Обязательное поле», которое определяет необходимость ввода данных в это поле.
Свойство «Формат поля» указывает формат отображения данных из поля в режиме «Таблицы». Для определения формата полей текстового типа используются специальные символы форматирования. Для числовых полей значение формата можно выбрать из раскрывающегося списка.
С помощью свойства «Маска ввода» указывается маска, позволяющая автоматизировать проверку ввода символов в поле. Она применяется к таким полям, как номер телефона, дата и т. д. Задавать маску ввода можно вручную или с помощью мастера.
Свойство «Индексированное поле» определяет, является ли данное поле индексированным, и если является, то в каком режиме. Существуют два режима индексирования: «Совпадения допускаются» и «Совпадения не допускаются». В первом случае поле может содержать повторяющиеся значения, во втором – нет.
Для большинства типов полей определено свойство «Значение по умолчанию». В этом свойстве указывается значение, автоматически добавляемое в поле для каждой новой записи, если это значение не введено пользователем.
Два свойства, которые тоже определены для большинства полей, позволяют выполнять проверку данных, вводимых в поле: «Условие на значение». Свойство определяет условие (ограничение), накладываемое на вводимые в это поле данные. При несоответствии вводимых данных указанному условию выдается сообщение об ошибке; «Сообщение об ошибке». Свойство определяет то сообщение, которое будет выдаваться пользователю, если при вводе данных не соблюдается условие, указанное в свойстве «Условие на значение». Если это свойство не указано, будет выдано стандартное сообщение об ошибке. Для таблицы можно, хотя и необязательно, ввести ключевые поля.
Ключевое поле – это одно или несколько полей, комбинация значений которых однозначно определяет каждую запись в таблице. Если для таблицы определены ключевые поля, то MS Access предотвращает дублирование или ввод пустых значений в ключевое поле. Ключевые поля используются для быстрого поиска данных и для установления связи между таблицами. В MS Access можно выделить три типа ключевых полей: счетчик, простой ключ и составной ключ.
Для создания ключевого поля первого типа необходимо в режиме конструктора таблиц:
включить в таблицу поле счетчика;
задать для него автоматическое увеличение на 1;
указать это поле в качестве ключевого путем нажатия на кнопку «Ключевое поле» на панели инструментов конструктора таблиц.
Если до сохранения созданной таблицы ключевые поля не были определены, то при сохранении будет выдано сообщение о создании ключевого поля. Для создания простого ключа достаточно иметь поле, которое содержит уникальные значения (например, коды или номера). Если выбранное поле содержит повторяющиеся или пустые значения, его нельзя определить как ключевое. Для определения записей, содержащих повторяющиеся данные, можно выполнить запрос на поиск повторяющихся записей. Если устранить повторы путем изменения значений невозможно, следует либо добавить в таблицу поле счетчика и сделать его ключевым, либо определить составной ключ. Составной ключ необходим в случае, если невозможно гарантировать уникальность записи с помощью одного поля. Он представляет собой комбинацию нескольких полей. Для определения составного ключа необходимо:
открыть таблицу в режиме конструктора;
выделить поля, которые необходимо определить как ключевые;
нажать кнопку «Ключевое поле» на панели инструментов конструктора таблиц.
Порядок выполнения работы
В результате выполнения лабораторной работы № 1 каждый студент создает базу данных Учебный процесс, состоящую из таблиц с заполненными полями данных и установленными между каждой парой таблиц связями.
1. Создать рабочий каталог <disk>:\student\ПЗ_№_\<FIO>.
2. Вызвать программу MS Access и открыть новую базу данных с именем Учебный процесс.

Рис. 1.1. Стартовое окно MS Access.
3. Сделать рабочий каталог текущим, используя команду меню Сервис/ Параметры/ Общие/ Рабочий каталог.
4. В режиме конструктора таблиц создать структуру таблицы Т_Кафедра. Описание свойств этой таблицы приведено в табл. 1. Предусмотреть маску ввода для поля Телефон.

Рис. 1.2. Структура таблицы Т_Кафедра.
5. В режиме конструктора таблиц создать структуру таблицы Группа. Описание свойств полей этой таблицы приведено в табл. 2. При создании структуры ввести условия на значения полей Количество (0<= Количество <=30) и Ср_балл (2<=Ср_балл<=5) и задать соответствующие сообщения об ошибках в случае нарушения условий при вводе.

Рис. 1.3. Структура таблицы Т_Группа
Таблица 1
Описание свойств полей таблицы Т_Кафедра
Имя поля Ключевое поле Уникаль-ное Обязатель-ное поле
Тип данных Размербайт Подпись поля
Код_каф Да Да Да Тексто-вый 2 Код кафедры
Наименование кафедры Нет Да Да Тексто-вый 20 Назва-ние кафедры
Телефон Нет Да Нет Тексто-вый 9 Телефон
Зав_каф Нет Нет Нет Тексто-вый 20 Табель-ный номер зав. кафедрой
Таблица 2
Описание свойств полей таблицы Т_Группа
Имя поля Ключевое поле Уникаль-ное Обязатель-ное поле Тип данных Разм., байт Подпись поля Условие на значение
Сообщ. об ошибке
1 2 3 4 5 6 7
Код_гр Да Да счетчик Номер группы Количество Нет Нет Целое число 2 Кол-во студ. в группе >= 0 And <= 30 (кол-во студентов> допустимого)
Ср_балл Нет Нет Число с плавающей точкой 4 Средний балл >2 And<=5 Or 0(ошибка в оценке)
Староста Нет Да Тексто-вый 10 Староста группы Староста
6. В режиме конструктора таблиц создать структуру таблицы Студент. Описание свойств этой таблицы приведено в табл. 3; установить для поля Дата_рожд формат «Краткий формат даты».

Рис. 1.4. Структура таблицы Т_Студент
Таблица 3
Описание свойств полей таблицы Т_Студент
Имя поля Ключевое уникаль-ное поле Обязатель-ное поле Тип данных Раз-мер, байт Число десят. Зна-ков Подпись поля
Код_гр Да Нет Числовой 6 – Номер группы
Код_ст Да Нет Числовой 2 – Номер студента в группе
ФИО Нет Да Текстовый 30 – ФИО
Дата_
рожд Нет Нет Дата – – Дата рождения
Адрес Нет Нет Текстовый 40 – Адрес
Ср_балл Нет Нет Число с плавающей точкой 4 2 Средний балл
Ин_яз Нет Нет Текстовый 10 – Изучае-мый иностранный язык
7. В режиме конструктора таблиц создать структуру таблицы Занятия. Описание свойств этой таблицы приведено в табл. 4.

Рис. 1.5. Структура таблицы Т_Занятия
Таблица 4
Описание свойств полей таблицы Т_Занятия
Имя поля Ключевое уникальное поле Обязательное поле Тип данных Размер, байт Подпись поля
Ном_гр Да Нет Числовой 3 Номер группы
Код_пр Да Нет Числовой 2 Код предмета
Таб_ном Да Нет Числовой 4 Табельный номер преподавателя
Вид_зан Нет Да Текстовый 3 Вид занятий
Часы Нет Да Целое число 2 Количество часов по данному виду занятий
Ср_балл Нет Нет Число с плавающей точкой 4 Средний балл по предметам
8. В режиме конструктора таблиц создать структуру таблицы Успеваемость. Описание свойств этой таблицы приведено в табл. 5.

Рис. 1.6. Структура таблицы Т_Успеваемость.
Таблица 5
Описание свойств полей таблицы Т_Успеваемость
Имя поля Ключевое уникальное поле Обязательное поле Тип данных Размер, байт Подпись поля
Ном_гр Да Да Числовой 6 Номер группы
Ном_ст Да Да Числовой 2 Номер студента
Код_пр Да Да Числовой 2 Код предмета
Таб_ном Да Да Текстовый 4 Табельный номер преподавателя
Вид_зан
Нет Да Текстовый 4 Вид занятий
Балл Нет Нет Целое число 1 Оценка студента по данному виду занятия
9. В режиме конструктора таблиц создать структуру таблицы Предмет. Описание свойств этой таблицы приведено в табл. 6. При создании структуры ввести условия на значения полей Всего (0<=Всего<=400) И Лекц (0<=Лекц<=400), Пр (0<=Пр<=400), Лаб (0<=Лаб<=400) и задать соответствующие сообщения об ошибках в случае нарушения условий при вводе. Для полей Лекц, Пр и Лаб установить значение по умолчанию, равное нулю.

Рис . 1.7. Структура таблицы Т_Предмет.
Таблица 6
Описание свойств полей таблицы Т_Предмет
Имя поля Ключе-вое уникальное поле Обязатель-ное поле Тип данных Размер, байт Подпись поля Усло-вие на значе-ние Сообщение об ошиб-ке
1 2 3 4 5 6 7
Код_Пр Да
Да
Счетчик 2 Код предмета –
Назв_Пр Нет Да Текстовый 30 Название предмета –
Всего Нет Да Целое число 2 Всего часов >= 0 And<=400 (диапазон числа часов)
Лекц Нет Да Целое число 2 Лекции >= 0 And <=400 (диапазон числа часов)
Пр Нет Да Целое число 2 Практ. занятия > =0 And <=400 (диапазон числа часов)
Лаб Нет Да Целое число 2 Лаборат.занятия >= 0 And <=400 (диапазон числа часов)
Отчет Нет Да Текстовый
1 Форма отчетности –
Прогр Нет Нет Поле МЕМО – Программа курса –
10. В режиме таблицы создать таблицу Преподаватель, введя первую запись из табл. 9 (поле Должн пока не используется).

Рис. 1.8. Структура таблицы Т_Преподаватель.
Таблица 7
Описание свойств полей таблицы Т_Преподаватель
Имя поля Ключевое уникальное поле Обязательное поле Тип данных Размер, байт Подпись поля
1 2 3 4 5 6
Таб_Ном Да Да Текстовый 4 Табель номер преподавателя
ФИО Нет Да Текстовый 30 ФИО преподавателя
Ст Нет Нет Текстовый 15 Ученая степень
Зв Нет Нет Текстовый 10 Ученое звание
К_Каф Нет Да Текстовый 2 Код кафедры
Должн Нет Да Текстовый 20 Должность преподавателя
11. Создать схему данных путем установления групповых отношений (связей) между информационными объектами, представленными таблицами базы данных, используя данные табл. 8.

Рис. 1.9. Схема данных базы данных Учебный процесс.
11. Заполнить созданные ранее таблицы данными.

Рис. 1.10. Заполнение таблицы Т_Предмет данными.
Таблица 8
Связи информационных объектов
Главный объект Подчиненный объект Тип связи
Группа Студент 1:М
Кафедра Преподаватель 1:М
Предмет Занятия 1:М
Преподаватель Успеваемость 1:М
Группа Занятия 1:М
Студент Успеваемость 1:М
Занятия Успеваемость 1:М
13. Для установления связей между таблицами необходимо: выполнить команду Сервис / Схема данных (рис. 1); откроется диалоговое окно «Добавление таблицы»; в диалоговом окне «Добавление таблицы» выделить таблицы, для которых необходимо установить связи, и нажать кнопку Добавить.

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

Рис. 1.12. Создание связей между таблицами.
После установления связи откроется диалоговое окно «Связи». При этом в окне «Тип отношения» автоматически установится тип «один ко многим».

Рис. 1.13. Окно «Изменение связей».
Для установления связи по составному ключу необходимо выделить все поля, входящие в ключ главной таблицы, и перетащить их на одно из полей связи в подчиненной таблице. В окне «Связи» для каждого ключевого поля главной таблицы (таблица / запрос) выбрать соответствующее поле подчиненной таблицы (связанная таблица / запрос); задать параметр Обеспечение целостности данных; установить флажки Каскадное обновление связанных полей и Каскадное удаление связанных записей; нажать на кнопку OK.
14. Для полей повторяющихся в разных таблицах можно создать подстановки. Для этого необходимо в режиме конструктора таблиц щелкнуть вкладку Подстановка в окне свойства поля.

Рис. 1.14. Создание подстановки в поле Таб_ном таблицы Занятия.
Далее нужно выбрать из выпадающего списка Поле со списком.

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

Рис. 1.16. Готовая подстановка
Таким же способом можно разработать подстановки для полей, в которых они нужны.
Контрольные вопросы
1. Что входит в понятие базы данных?
2. Что такое нормализация базы данных?
3. Какие нормальные формы вы знаете? Дайте им определения.
4. Какие требования предъявляют к содержанию таблиц реляционной БД?
5. Какие этапы создания макета таблицы в режиме Конструктора вам известны?
6. Для чего в таблице задается первичный ключ? В чем различие между первичным и внешним ключом?
Лабораторная работа № 2Изучение типов, порядка построения и реализации запросов реляционной БД MS ACCESSЦель работы: закрепление теоретических знаний, полученных в лекционном курсе.
Задание для самостоятельной работы: изучить порядок создания и работы с запросами в БД MS Access; приобрести навыки разработки запросов в реляционных БД.
Краткие теоретические сведения
Одним из стандартных объектов MS Access является запрос. Запросы используются для просмотра, анализа и изменения данных в одной или нескольких таблицах. Например, можно использовать запрос для отображения данных из одной или нескольких таблиц и отсортировать их в определенном порядке, выполнить вычисления над группой записей, осуществить выборку из таблицы по определенным условиям. Запросы могут служить источником данных для форм и отчетов MS Access. Сам запрос не содержит данных, но позволяет выбирать данные из таблиц и других запросов и выполнять над ними ряд операций. В MS Access существует несколько видов запросов. Одним из наиболее часто применяемых типов запросов является запрос на выборку. Он содержит условия отбора данных и возвращает выборку, соответствующую указанным условиям, без изменения возвращаемых данных. Источником для запроса могут служить таблицы или другие запросы. Для изменения уже существующих запросов и создания новых используется конструктор запросов. Чтобы создать новый запрос с помощью конструктора запросов, необходимо: в окне базы данных на панели объектов выбрать ярлык «Запросы»; в списке запросов выбрать ярлык «Создание запроса» в режиме конструктора или нажать кнопку «Создать», в появившемся окне «Новый запрос» выбрать пункт «Конструктор»; в окне «Добавление таблицы» выбрать одну или несколько таблиц или запросов для построения нового запроса и нажать кнопку «Добавить». Для удобства выбора таблиц и запросов в окне существуют следующие вкладки: «Таблицы», на которой отображается список таблиц; «Запросы», на которой отображается список запросов; «Таблицы после добавления всех необходимых таблиц нажать кнопку «Закрыть» в окне «Добавление таблицы».
Порядок выполнения работы
1. Создать простой запрос с использованием данных из нескольких таблиц. Разработать запрос, позволяющий получить данные о каждом преподавателе: Код_преп, ФИО, Уч_Ст, Должн, Уч_Зв из таблицы Т_Преподаватель и Код_каф из таблицы Т_Кафедра.

Рис. 2.1. Запрос в режиме конструктора
2. Открыть БД, выбрать вкладку Запросы; нажать кнопку Создать, выбрать из списка инструментов Простой запрос (появится окно Мастера запросов);выбрать необходимые поля, нажать кнопку Далее.

Рис. 2.2. Окно мастера запросов «Новый запрос»

Рис. 2.3. Выбор источников и полей для запроса.
3. Указать имя запроса Препод_1, установить радио-кнопку Открытие результатов выполнения запроса, нажать кнопку Готово, просмотреть результаты выполнения запроса.

Рис. 2.4. Завершающая стадия создания запроса.
4. Перейти в режим Конструктора, добавить в запрос поле ТЕЛ из таблицы Т_Кафедра.

Рис. 2.5. Запрос Препод_1 в режиме конструктора.
5. Выполнить запрос, отсортировать результат выполнения запроса по полю ФИО. Предъявить результат преподавателю.

Рис. 2.6. Результат выполнения запроса Препод_1.
6. Создать перекрестный запрос, позволяющий представить данные из таблиц и запросов БД в виде электронной таблицы (с группировкой по строкам и столбцам и вычисляемым значением на их пересечении). Создать в режиме конструктора простой запрос, содержащий поля Ном гр, Часы из таблицы Т_Занятия, поле Назв_пр из таблицы Т_Предмет: выбрать вкладку Запросы; нажать кнопку Создать, выбрать из списка инструментов Конструктор; добавить таблицы Т_Занятия и Т_Предмет, закрыть окно Добавить таблицу; выбрать необходимые поля; закрыть окно Конструктора, сохранив запрос под названием Занятия – Предмет; просмотреть результаты выполнения запроса.

Рис. 2.7. Простой запрос Занятия-Предмет в режиме конструктора.

Рис. 2.8. Результаты выполнения простого запроса.
Создать собственно перекрестный запрос: на вкладке Запросы нажать кнопку Создать, выбрать из списка инструментов Перекрестный запрос (появится окно Мастера запросов); установить радиокнопку Запросы, выбрать из появившегося списка запросов Занятия – Предмет, нажать кнопку Далее.

Рис. 2.9. Окно мастера запросов «Создание перекрестных таблиц».
Выбрать в качестве заголовков строк поле Назв_пр, нажать кнопку Далее.

Рис. 2.10. Выбор заголовков строк.

Выбрать в качестве заголовков столбцов поле Ном_гр, нажать кнопку Далее.

Рис. 2.11. Выбор заголовков столбцов.
Для значения ячейки выбрать из списка Поля значение Часы, из списка Функция выбрать Sum, нажать кнопку Далее.

Рис. 2.12. Выбор функции и поля для вычисления.
Указать имя запроса Зан_пред, установить радиокнопку Открытие результатов выполнения запроса, нажать кнопку Готово, просмотреть результаты выполнения запроса. Предъявить результат преподавателю.

Рис. 2.13. Завершающее окно создания перекрестного запроса.

Рис. 2.14. Результаты выполнения перекрестного запроса.
Контрольные вопросы
1. Какое определение объекту запрос вам известно?
2. В чем заключается назначение запроса?
3. Какие управляющие запросы или запросы действия вам известны?
4. Когда используются перекрестные запросы?
5. Каков порядок создания запросов?
Лабораторная работа № 3Создание, изучение свойств и структуры форм реляционной базы данныхЦель работы: закрепление теоретических знаний, полученных при изучении разделов курса, посвященных рассмотрению созданию форм в СУБД.
Задание для самостоятельной работы: изучить состав, структуру и свойства форм, создаваемых в БД MS Access; приобрести навыки разработки и формирования форм реляционных БД.
Краткие теоретические сведения
MS Access позволяет организовать удобный и интуитивно понятный интерфейс пользователя для работы с данными при помощи форм. Формами называются настраиваемые диалоговые окна, сохраняемые в базе данных в виде объектов специального типа. Формы MS Access являются объектами базы данных, так же как таблицы и запросы. Формы используются в приложении для ввода и отображения данных. Формами можно управлять программно с помощью процедур на VBA. Формы представляют более удобный способ просмотра и правки данных в таблицах, чем режим «Таблицы». Они содержат так называемые элементы управления, с помощью которых осуществляется доступ к данным в таблицах. Элементами управления являются текстовые поля для ввода и правки данных, кнопки, флажки, переключатели, списки, надписи, а также рамки объектов для отображения графики и объектов OLE. Создание форм, содержащих необходимые элементы управления, существенно упрощает процесс ввода данных и позволяет предотвратить ошибки. MS Access предлагает несколько способов создания форм. Самым простым из них является использование средств автоматического создания форм на основе таблицы или запроса. Автоматически создаваемые формы (автоформы) бывают нескольких видов, каждый из которых отличается способом отображения данных: форма, организованная «в столбец». В такой форме поля каждой записи отображаются в виде набора элементов управления, расположенных в один или несколько столбцов. Это компактное и, пожалуй, самое удачное решение для быстрого создания формы; MS Access; ленточная форма, в которой поля каждой записи располагаются в отдельной строке. Это очень удобно для работы с большими массивами данных, поскольку данные располагаются в таком же порядке, как и в простой таблице. Преимуществом этой формы по сравнению с табличной является то, что каждое поле представлено в виде отдельного элемента управления, который можно оформить в любом стиле Автоматически созданная форма включает все поля выбранного источника данных. Чтобы создать форму с помощью средства автоматического создания форм, необходимо: щелкнуть по ярлыку «Формы» (Forms) в окне «База данных» и нажать кнопку «Создать». Появится диалоговое окно «Новая форма»; в списке диалогового окна «Новая форма» выделить один из вариантов автоформы, например «Автоформа: в столбец»; в поле со списком, находящимся в нижней части диалогового окна «Новая форма», содержатся имена всех таблиц и запросов базы данных, которые могут быть использованы в качестве источника данных для формы. Нужно щелкнуть левой кнопкой мыши по кнопке со стрелкой, чтобы раскрыть список и выбрать в нем нужный элемент.
Порядок выполнения работы
При выполнении лабораторной работы необходимо:
1. Используя режим автоматического создания экранной формы, разработать форму Т_Предмет: открыть базу данных Учебный процесс; щелкнуть на ярлычке Форма окна базы данных, предварительно выделив таблицу Т_Предмет. Появится новая форма Т_Предмет. Этот режим обеспечит ввод/вывод всех полей выбранной таблицы, при этом для каждой записи отводится отдельная страница формы.

Рис. 3.1. Область Создание формы на ленте.

Рис. 3.2. Автоформа по таблице Предмет
2. Выполнить редактирование полученной формы: используя кнопку панели инструментов Режимы формы, перейти в режим конструктора формы. Созданная форма откроется в окне конструктора форм.

Рис. 3.3. Форма Предмет1 в режиме конструктора.
На панели форматирования выбрать шрифт и другие параметры оформления текста; нажать кнопку мыши и, не отпуская ее, растянуть рамку текста до нужного размера; затем уточнить текст надписей, местоположение, размер, шрифт и другие параметры отображения элементов формы. Редактируемый элемент необходимо пометить щелчком мыши внутри его рамки. Рамка помеченного элемента может быть растянута или сжата при размещении курсора на специальных маркерах изменения размера (маленькие черные прямоугольники на рамке), в которых появляется двунаправленная стрелка.
Для связанного перемещения элементов Поле и Надпись необходимо курсор мыши установить на любой границе рамки (курсор отображается в виде раскрытой ладони) и при нажатой кнопке мыши перетащить элемент в нужное место формы. Независимое перемещение Поля и его Надписи возможно, если курсор мыши установлен в левом верхнем углу рамки (курсор отображается в виде указательного пальца). Отредактированную форму следует сохранить под именем Т_Предмет (команда Файл/Сохранить или кнопка панели инструментов Сохранить).
3. Дополнить таблицу Т_Предмет через разработанную форму.

Рис. 3.4. Создание новой записи в таблице Предмет через форму Предмет1.

Рис. 3.5. Ввод данных в таблицу через форму.
4. Разработать экранную форму для загрузки связанных таблиц Т_Группа и Т_Студент. Разработка формы выполняется следующим образом: в окне базы данных щелкнуть Создать, затем выбрать Другие формы, а затем - Мастер форм.

Рис. 3.6. Ярлык «Мастер форм».
Откроется первое диалоговое окно мастера, в котором следует выбрать таблицы и поля для проектируемой формы; в раскрывающемся списке Таблицы/Запросы выбрать таблицу Т_Группа, которая будет служить источником данных для основной части создаваемой многотабличной формы. Кнопкой с двойной стрелкой (>>) перенести все поля таблицы Т_Группа из списка Доступные поля в список Выбранные поля. В списке Таблицы/Запросы выбрать вторую таблицу Т_Студент, которая будет служить источником записей подчиненной части многотабличной формы, и также перенести все поля в список Выбранные поля; нажать кнопку Далее.

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

Рис. 3.8. Выбор типа формы в Мастере форм.
В следующем окне мастера предоставляется возможность выбрать внешний вид подчиненной формы – Ленточный или Табличный; выбрать Ленточный для получения многозаписевой подчиненной формы и вывода в ней подписей полей из структуры таблицы Т_Группа; нажать кнопку Далее.

Рис. 3.9. Выбор внешнего вида формы в Мастере форм.
В следующем окне мастер форм предлагает выбрать стиль оформления формы. Рекомендуется выбрать стиль оформления Обычный с утопленными полями.

Рис. 3.10. Выбор стиля формы в Мастере форм.
В последнем окне «Создание форм» следует ввести имя составной формы – Список_Группы и имя подчиненной формы – Список_Студентов, выбрать дальнейшие действия мастера – Открытие формы для просмотра или ввода данных и нажать кнопку Готово.

Рис. 3.11. Завершающее окно создания формы.
После завершения работы мастера на экран выводится форма с данными из таблицы. При этом в подчиненной форме выводятся все записи, связанные с текущей записью основной части формы.

Рис. 3.12. Форма в Режиме формы.
5. Выполнить редактирование составной экранной формы. Открыть созданную мастером составную многотабличную форму Список_Группы в режиме конструктора; используя технику редактирования, произвести доработку основной части формы Список_Группы. Для задания ширины и высоты подписи в соответствии с размером и шрифтом текста можно использовать кнопку По размеру данных на панели конструктора.

Рис. 3. 13. Отредактированная форма Список_группы.
6. Удалить из формы Список_Группы Поле номера записи: выполнить команду Правка/Выделить форму; выполнить команду Вид/Свойства и в диалоговом окне «Форма» установить значение Нет для свойства Поле номера записи; создать кнопки управления для перехода к следующей и предыдущей записям в таблице Т_Группа.
7. Создание кнопки рассмотрим на примере кнопки перехода к предыдущей группе: в режиме конструктора форм на панели инструментов щелкнуть мышью на кнопке Мастер элементов, а затем на кнопке Кнопка.

Рис. 3. 14. Панель элементов управления.
Перетащить кнопку курсором мыши в нужное место, начертить курсором мыши рамку для кнопки и отпустить кнопку мыши; запустится мастер кнопок.

Рис. 3.15. Начальное окно «Создание кнопок».
В окне «Создание кнопки» в области Категории выбрать Переходы по записям, а в области Действия – действие, которое необходимо выполнять при нажатии кнопки (Предыдущая запись); нажать кнопку Далее.

Рис. 3.16. Выбор действия для кнопки.
Следующее диалоговое окно «Создание кнопки» служит для выбора текста или рисунка, который будет отображаться на кнопке. Выбрать селектор Рисунок, включить флажок Показать все рисунки и подобрать нужный рисунок (в данном примере – Стрелка вниз (объем)); нажать кнопку Далее.

Рис. 3.17. Выбор рисунка для кнопки.
В последнем диалоговом окне задать имя кнопки и нажать кнопку Готово.

Рис. 3.18. Завершающее окно Создание кнопки.
Кнопка с выбранным рисунком будет встроена в форму.

Рис. 3.19. Кнопка на форме в режиме конструктора.
8. Выполнить редактирование подчиненной формы Список_Студентов: дважды щелкнуть мышью на области подчиненной формы; в появившемся окне конструктора форм будет отображена ранее построенная мастером форм подчиненная форма Список_Студентов; используя технику редактирования формы, удалить поле Код_гр, поскольку это поле является полем связи и его достаточно сохранить в основной части формы; уточнить подписи полей (столбцов) в заголовке формы, а также шрифт, размеры полей и подписей; закончить редактирование составной формы, нажав кнопку панели инструментов Сохранить.

Рис. 3.20. Форма Список_студентов в режиме формы.
9. Открыть форму Список_Группы в режиме формы и дополнить с ее помощью таблицы Т_Группа и Т_Студент.

Рис. 3.21. Ввод данных в форму Список_групп.
10. Разработать составную форму Список_кафедр и дополнить с ее помощью связанные таблицы Т_Кафедра и Т_Преподаватель.
11. Разработанные формы показать преподавателю
Контрольные вопросы
1. В чем заключается назначение формы?
2. В чем отличие формы от запроса?
3. Какие возможности создания форм вам известны?
4. Какие возможности предоставляет Конструктор форм?
5. Какие виды форм вам известны?
Лабораторная работа № 4
Создание и печать отчетовЦель лабораторной работы: закрепление теоретических знаний, полученных при изучении разделов курса, посвященных рассмотрению созданию отчетов в СУБД.
Задание для самостоятельной работы: изучить краткие теоретические сведения.
Краткие теоретические сведения
Одной из основных задач создания и использования баз данных является предоставление пользователям необходимой информации на основе существующих данных. В MS Access для этих целей предназначены формы и отчеты. Отчеты позволяют выбрать из базы данных требуемую пользователем информацию и оформить ее в виде документов, которые можно просмотреть и напечатать. Источником данных для отчета может быть таблица или запрос. Кроме данных, полученных из таблиц, в отчете могут отображаться вычисленные по исходным данным значения, например итоговые суммы.
Отчеты и формы MS Access имеют много общего. Однако, в отличие от форм, отчеты не предназначены для ввода и правки данных в таблицах. Они позволяют лишь просматривать и печатать данные. В отчете невозможно изменить исходные данные с помощью элементов управления, как это можно сделать с помощью форм, хотя в отчетах можно использовать такие же элементы управления для указания состояния переключателей, флажков и списков. Отчет, как и форма, может быть создан с помощью мастера. Разделы отчета подобны разделам формы и включают заголовок и примечание, область данных, а также верхний и нижний колонтитулы. В примечание часто помещают поля с итоговыми значениями. Элементы управления могут быть добавлены в отчет с помощью панели инструментов, идентичной той, что используется в режиме «Конструктора форм». Форматирование и группировка элементов управления в отчете выполняются аналогично форматированию и группировке элементов управления в форме. Формы могут содержать подчиненные формы, а отчеты могут содержать подчиненные отчеты. Наиболее простым из них является использование средств автоматического создания отчета. Автоматически создаваемый на основе таблицы или запроса отчет называется автоотчетом. MS Access позволяет автоматически создавать отчеты двух форматов: в столбец и ленточный. Чтобы создать автоотчет, необходимо: на панели объектов окна «База данных» щелкнуть по ярлыку «Отчеты» и нажать кнопку «Создать». Появится диалоговое окно «Новый отчет»; в списке диалогового окна «Новый отчет» выделить один из элементов: «Автоотчет: в столбец» или «Автоотчет: ленточный».
Порядок выполнения работы
1. Используя разработанную и заполненную базу данных из лабораторной работы №1 спроектировать следующие отчеты на основе имеющихся таблиц.
2. Создать отчет по таблице Т_Студенты и отредактировать его.

Рис. 4.1. Создание простого отчета по таблице Студент.
Задать уровень группировки по полю Код_гр.

Рис. 4.2. Задание группировки в Режиме макета.
Указать порядок сортировки записей по полю Фамилия.

Рис. 4.3. Создание сортировки по полю ФИО в режиме макета.
Выбрать стиль оформления отчета.

Рис. 4.4. Выбор стиля оформления отчета.
На последнем шаге указать имя отчета. Просмотреть отчет на экране, анализируя его содержимое.

Рис. 4.5. Готовый отчет по таблице Студент.
3. Создать отчет по базовому запросу к таблицам Т_Студенты и Т_Успеваемость.

Рис. 4.6. Простой отчет по запросу в режиме макета.
Указать порядок сортировки записей по полю Ср_балл.

Рис. 4.7. Указание порядка сортировки в режиме макета.
Выбрать стиль оформления отчета.

Рис. 4.8. Стили оформления отчета.
На последнем шаге указать имя отчета.

Рис. 4.9. Окно «Сохранение» отчета.
Просмотреть отчет на экране, анализируя его содержимое. Добавить в область заголовка любой графический рисунок.

Рис. 4.10. Отчет по запросу в режиме конструктора.
4. Создать подчиненный отчет по таблице Т_Занятия.

Рис. 4.11. Ярлык Подчиненная форма/отчет на панели ЭУ.

Рис. 4.12. Окно мастера создания подчиненных отчетов – выбор источника.

Рис. 4.13. Выбор полей для отчета.

Рис. 4.14. Определение поля связи.

Рис. 4.15. Завершающее окно создания подчиненного отчета.

Рис. 4.16. Подчиненный отчет в режиме конструктора.

Рис. 4.17. Подчиненный отчет Успеваемость в режиме Представления отчета.
5. С помощью мастера Диаграмм построить диаграмму Microsoft Graph по таблице Т_Студенты:
– на первом шаге из доступных полей выбираем поля для диаграммы (Фамилия, Ср_балл):

Рис. 4.18. Выбор полей для диаграммы.
– на 2-м шаге выбираем тип диаграммы:

Рис. 4.19. Выбор типа диаграммы.
– на 3-м шаге выбираем тип отображения данных на диаграмме: для осей выбираем поле Фамилия, для данных – поле Ср_балл:

Рис. 4.20. Выбор типа отображения данных.

Рис. 4.21. Выбор связывающих полей.
– на 4-м шаге сохраняем диаграмму с именем Ср_балл студентов:

Рис. 4.22. Завершающее окно создания диаграммы.
– в режиме Конструктора можно редактировать диаграмму двойным щелчком по любой области.

Рис. 4.23. Готовая диаграмма.
6. Создать ленточный автоотчет по таблице Т_Успеваемость и сохранить его с именем Успеваемость.
Прежде всего нужно создать ленточную форму по таблице Успеваемость в Мастере форм.

Рис. 4.24. Окно мастера форм – выбор полей для формы.

Рис. 4.25. Окно выбора внешнего вида формы.

Рис. 4.26. Ленточная форма по таблице Успеваемость.

Рис. 4.27. Отчет по ленточной форме Успеваемость в режиме макета.
Контрольные вопросы
1. Что представляют собой отчеты в Access?
2. какие этапы создания отчета вам известны?
3. Чем отличается отчет от формы, запроса?
4. Какие виды отчетов вам известны?
5. В чем отличие автоотчета от других способов создания отчетов?
6. В чем преимущества отчета над другими методами вывода данных?
7. Как использовать мастер для создания отчета?
8. Чем характеризуется режим Конструктора?
9. Какие разделы отчета вам известны.
10. В каком разделе отчета выводятся итоги?
11. В поле какого типа можно задать группировку по интервалу? По годам?
12. Как добавить вычисляемое поле в область данных?
13. Наличие каких объектов необходимо для внедрения подчиненного отчета?
14. Какие изменения можно внести в отчет в режиме предварительного просмотра?Лабораторная работа № 5Работа с макросамиЦель работы: закрепление теоретических знаний, полученных при изучении разделов курса, посвященных рассмотрению созданию макросов в СУБД.
Задание для самостоятельной работы: изучить краткие теоретические сведения.
Краткие теоретические сведения
В Access макрос определенная последовательность операций. Они хранятся в окне, напоминающем таблицу, в таком порядке, в котором их необходимо выполнять. При запуске макроса Access выполняет эти действия. Макрос может существенно облегчить использование Access. Одной из полезных особенностей макросов является возможность их привязки к кнопкам, которые помещаются в формы. Эти кнопки могут выполнять часто повторяющиеся операции (например, открывать диалоговые окна для поиска, изменять порядок сортировки данных или печатать отчет). Пользователи Access могут использовать определенные кнопки для выполнения этих действий, даже не зная всех подробностей операций, выполняемых макросом. Используя макросы, можно создавать завершенные приложения с пользовательским меню и диалоговыми окнами.
Для создания макроса необходимо открыть вкладку Макросы в окне БД и выполнить щелчок по кнопке Создать. Это же действие можно выполнить с использованием пунктов меню Вставка -> Макрос. В открывшемся диалоговом окне отображена информация следующего вида:
Окно макросов делится на две части: верхнюю и нижнюю. В верхней части находится список макрокоманд, которые необходимо выполнить, и необязательные примечания к этим командам. В нижней части окна находятся аргументы макрокоманды.
При разработке макроса необходимо задать действия (ввести макрокоманды), которые он должен выполнить (например, открыть форму, распечатать отчет, выполнить запрос или экспортировать содержимое таблицы в файл электронной таблицы). В Access такие действия можно определить следующим способом: в окне макросов выполнить щелчок мышью на первой пустой ячейке в столбце Макрокоманда. Затем выполнить щелчок по кнопке раскрытия списка, при этом раскрывается список допустимых макрокоманд. Выбрать из списка команду, которую должен выполнить макрос или набрать эту команду вручную. Выполнить щелчок в нижней части окна или нажать клавишу F6 и указать аргументы действия. При необходимости добавить комментарий в столбце Примечание.
В таблице 9 представлен список некоторых макрокоманд их назначение и аргументы
Таблица 9
Макрокоманды, их назначение и аргументы
Команда Назначение Аргументы
1 2 3
Восстановить Восстанавливает размер максимизированного или минимизированного окна Нет
Выполнить Команду Выполняет команду меню Команда
Выход Инициирует выход из Access Параметры
Запуск Приложения Запускает приложение Windows или DOS Командная строка
Найти Запись Находит первую запись, которая удовлетворяет условиям, определенным действием НайтиЗапись или значениями в диалоговом окне Найти Образец поиска, Совпадение, С учетом регистра, область поиска, С учетом формата поля, Только в текущем поле, Первое вхождение
ЗапускМакроса Выполняет другой макрос Имя макроса, Число повторов, Условие повтора
ОткрытьЗапрос Открывает выбранный запрос в указанном режиме Имя запроса, Режим, Режим данных
ОткрытьОтчет Открывает отчет в указанном режиме или печатает его Имя отчета, Режим, Имя фильтра, Условие отбора
ОткрытьТаблицу Открывает таблицу в указанном режиме Имя таблицы, Режим, Режим данных
ОткрытьФорму Открывает форму в указанном режиме (формы, конструктора, просмотра или таблицы) Имя формы, Режим, Имя фильтра, Условие отбора, Режим данных Режим окна
ОтменитьСобытие Отменяет событие, которое привело к выполнению макроса Печатать Печатает активный объект Распечатать, Со страницы,
В столбце Примечание можно ввести любые комментарии, которые помогут проследить какое действие выполняет макрос.
Для сохранения макроса необходимо выполнить следующие действия: выбрать команду Файл Сохранить. Или выполнить щелчок по пиктограмме Сохранить на панели инструментов. Если макрос сохраняется впервые, Access запросит для него имя. Ввести имя созданного макроса, выполнить щелчок по кнопке ОК и закрыть окно макросов, нажав комбинацию клавиш Ctrl+F4.
После завершения разработки макроса можно проверить его работу, запустив макрос на выполнение. Самым простым способом является следующий: открыть вкладку Макросы в окне БД, выделить макрос и щелкнуть по кнопке Запуск или выполнить двойной щелчок на макросе в окне БД.
Другой способ запуска следующий: выбрать команду Сервис Макрос Запуск макроса. В появившемся диалоговом окне Запуск макроса выбрать или ввести имя макроса.
Если макрос открыт в режиме конструктора, его можно выполнить, щелкнув по кнопке Запуск на панели инструментов. Кроме того, макросы можно выполнять при помощи кнопок, которые добавляются в формы. Кнопки макросов можно создать методом перетаскивания.
Открыть нужную форму в режиме конструктора, переместить форму и установить ее размеры таким образом, чтобы можно было видеть и окно БД. Открыть вкладку Макросы в окне БД для отображения макросов. Перетащить нужный макрос в то место формы, где необходимо разместить кнопку. Созданная кнопка появится в окне формы.
Макрос можно настроить таким образом, чтобы он выполнялся автоматически при запуске БД. Для этого достаточно при сохранении созданного макроса присвоить ему имя Autoexec. Макросы Autoexec обычно используются для открытия форм, с которыми чаще всего работают пользователи, или для размещения на экране нескольких часто используемых форм и/или отчетов.
Удерживая клавишу Shift во время открытия БД, можно отменить запуск макроса Autoexec.
Структура таблицы в окне макросов напоминает структуру обычной таблицы БД. Команды редактирования текста, используемые для удаления, переноса и копирования содержимого ячеек, могут применяться и в рамках таблицы макроса.
Редактирование макроса осуществляется в режиме конструктора. Аргументы и краткое описание макрокоманды отображаются в окне макросов только при ее маркировке.
Например, для вставки дополнительной макрокоманды в существующий макрос необходимо выполнить следующие действия:
выбрать вкладку Макросы в окне БД;
выбрать макрос для редактирования, выполнив на нем щелчок мышью;
открыть макрос в режиме конструктора, выбрав кнопку Конструктор;
выбрать макрокоманду перед которой необходимо произвести вставку новой, выполнив щелчок мышью в одном из полей этой макрокоманды или маркировав всю строку целиком;
выбрать пункт меню Вставка, подпункт Строки. Перед маркированной строкой будет вставлена пустая;
поместить в эту строку новую макрокоманду;
сохранить макрос (Файл -> Сохранить).

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

Рис. 5.1. Ярлык для создания макроса.
Затем необходимо выбрать макрокоманду:

Рис. 5.2. Макрос в режиме конструктора – выбор макрокоманды.
Макрос для открытия таблицы:

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

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

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

Рис. 5.6. Выбор макроса для выполнения нажатием кнопки.
Затем необходимо выбрать, то что будет отображено на кнопке: рисунок или текст.

Рис. 5.8. Выбор изображения на кнопке.
На последнем этапе нужно указать имя новой кнопки нажать кнопку Готово.

Рис. 5.9. Завершающее окно создания кнопки для макроса.
Те же действия необходимо выполнять при подключении других кнопок к макросам.
Теперь при нажатии на кнопку в режиме Формы будет выполняться действие, зафиксированное в макросе.
Макрос в режиме конструктора выглядит так, как изображено на рисунке 5.10.

Рис. 5.10. Макрос 1 в режиме конструктора.
3. Создать макрос с именем AUTOEXEC для открытия кнопочной формы открытия базы данных; открытия запроса; просмотра отчета и проверить его выполнение.
На первом этапе нужно щелкнуть на вкладке создание и выбрать Макрос. Откроется макрос в режиме конструктора. Необходимо сохранить его под именем AUTOEXEC, вызвав меню правой клавишей мыши и нажав кнопку закрыть.

Рис. 5.11. Сохранение макроса AUTOEXEC.
На втором этапе необходимо выбрать нужные макрокоманды из списка.

Рис. 5.12. Макрос AUTOEXEC в режиме конструктора.
На следующем этапе нужно ввести аргументы макрокоманды указав их свойства.

Рис. 5.13. ввод аргументов макрокоманд.
Проверить выполнение этого макроса можно нажав клавишу Выполнить, или, закрыв и открыв Базу данных заново.
4. Выполнить разработку и создание базы данных согласно варианту задания Приложения.
Контрольные вопросы
1. Что такое макрокоманда?
2. Что такое макрос?
3. Как создать макрос?
4. Какие существуют способы запуска макроса?
5. Какие ошибки могут появиться при выполнении макроса и как их исправить?
6. Как в режиме формы создать кнопку для запуска макроса?
7. Для чего предназначен макрос AutoExec?
8. Как создать макрос AutoExec?
9. Как загрузить базу данных, не выполняя макрос AutoExec?
Приложение
Задания по лабораторной работе №1
Задание 1
В качестве предметной области рассматривается автотранспортное предприятие (гараж), предоставляющее услуги автомобильных перевозок топлива. База данных должна хранить данные об автомобилях, водителях, марках перевозимого топлива, данные о перевозках (автомобиль, водитель, перевезенное топливо, пробег, дата). Водители закреплены за автомобилями, причем за одним автомобилем может быть закреплено несколько водителей и каждый водитель может ездить на нескольких автомобилях.
Задание 2
Агентство занимается продажей авиабилетов на различные рейсы, ведет учет проданных билетов и учет пассажиров, купивших билеты, поэтому возникает потребность в хранении и обработке данных, сгруппированных следующим образом:
1) информация о расписании рейсов (номер рейса, тип самолета, пункт отправления, пункт назначения, дата вылета, время вылета, время полета, цена билета);
2) информация о свободных местах на рейс (номер рейса, дата вылета, общее количество мест, количество свободных мест);
3) информация о пассажирах, купивших билеты на рейсы (номер паспорта, фамилия, имя, отчество, номер рейса, дата вылета);
4) архив, в который помещается информация о выполненном рейсе (номер рейса, дата вылета, общее количество мест, количество проданных мест).
Задание 3
Агентство ведет списки лиц, ищущих работу, и списки вакансий. Вакансии поступают от организаций с указанием должности и оклада. В заявках претендентов, кроме анкетных данных, указываются желаемые должность и оклад. Каждая вакансия заполняется несколькими претендентами согласно их анкетным данным и передается агентством работодателю. Работодатель, независимо от агентства, отбирает одного из претендентов, который должен занять вакансию в базе данных агентства, после чего вакансии других претендентов аннулируются.
Продолжение прил.
Задание 4
Спроектировать базу данных, предназначенную для хранения информации о торгах. Товарно-сырьевая биржа проводит торги и ведет информацию о производственных продажах. На торги могут быть представлены разные товары одной и той же фирмы и одни и те же товары разных фирм. Каждый товар имеет свой уникальный код, произведен определенной фирмой в определенное время. Товар имеет гарантийный срок хранения, единицу измерения. Товары поставляются партиями. Партия характеризуется: номером, условиями поставки (предоплата или нет). Партии товаров выставляют брокеры. В одну партию включаются разнообразные товары от разных производителей определенного количества и цены. Считается, что партии товаров, выставленные на продажу, покупает сама биржа, она же расплачивается с брокером и производителями товара. Если условием поставки указана предоплата, то биржа перечисляет деньги в день заключения договора, а если нет – то в день отгрузки. Брокеры работают за фиксированный процент прибыли от суммы заключенных сделок и перечисляют конторе, в которой они работают, фиксированную сумму денег. Все остальные заработанные ими деньги составляют их чистый доход (зарплату).
Задание 5
Рассматривается предприятие, которое занимается поставкой и вводом в эксплуатацию оборудования для предприятий. База данных должна хранить данные о заказчиках, ценах и сроках выполнения заказов. На один вид оборудования может поступать несколько заявок от различных предприятий. На поставку оборудования или комплектующих на предприятие-заказчик оформляется заказ. На одно предприятие может быть поставлено оборудование разных наименований и в нескольких экземплярах по разным заказам. Необходимо вести учет поставок. С заказчиком по каждой поставке составляется договор купли-продажи.
Задание 6
Сфера услуг отеля включает обслуживание и бронирование номеров, ресторан, спортивный и тренажерный залы, сауну. Основной услугой является гостиничный номер, все остальное входит в разряд прочих услуг. Все заказы и их оплата записываются в базе данных отеля. Платежи за гостиничные номера и другие услуги учитываются
Продолжение прил.
отдельно друг от друга. Список клиентов содержит код клиента, имя и фамилию клиента,
страну, город, номер телефона. Список номеров включает номер комнаты, класс номера, оплату номера в день. В информацию о платежах за номера входят дата, код клиента, номер комнаты, число дней. Описание прочих услуг включает дату, код клиента, вид услуги (ресторан, спортивные тренажеры, досуг), размер оплаты.
Задание 7
Издательство – предприятие, занимающееся выпуском разнообразной печатной продукции. Издательство заключает договор с заказчиком (клиентом) на выполнение заказа. Заказчиком может выступать частное лицо или организация. Частное лицо может быть автором издания (или одним из авторов, если их несколько) или представителем автора. Организация для контактов с издательством также имеет своего представителя – контактную персону. Заказ может быть книгой, брошюрой, рекламным проспектом, буклетом, бюллетенем для голосования или каким-либо другим видом издательской продукции. Подготовленные издательством материалы заказчика печатаются в типографиях, где издательство размещает свои заказы. Информацию о работе издательства можно сгруппировать следующим образом: сведения о заказчиках (частное лицо или организация, личные данные контактной персоны, адрес, телефон, факс); сведения о заказах (номер заказа, заказчик, вид печатной продукции, издание, типография, дата приема заказа, отметка о выполнении, дата выполнения заказа); сведения об изданиях (код издания, автор и название, объем в печатных листах, тираж, номер заказа); сведения об авторах (личные данные: Ф.И.О., домашний адрес, сведения о типографиях (название, адрес, телефон).
Задание 8
Хозрасчетная поликлиника ведет прием и учет пациентов, их посещений (визитов) и учет обслуживания пациентов специалистами (врачами) поликлиники. Существует необходимость в хранении информации обо всех посещениях поликлиники пациентами и о том, на приеме у каких специалистов они находились. Хранимую информацию о деятельности хозрасчетной поликлиники и ее пациентах можно сгруппировать так: пациент (номер истории болезни, Ф.И.О., домашний адрес, те специалист (личный номер, Ф.И.О., специальность, домашний адрес, телефон); визиты (пациент, специалист, визит первый или повторный, дата визита, анамнез, диагноз, лечение, стоимость лекарств,
Окончание прил.
стоимость услуг). Архив, куда переносится информация о пациенте, если после его последнего визита прошел определенный срок (например, 3 года).
Задание 9
Спроектировать базу данных и создать приложение для автоматизации работы фирмы по производству обуви. База данных должна хранить данные о каждом сотруднике, список поставщиков необходимой продукции или комплектующих и данные о каждом поставщике, список поставляемой продукции или комплектующих, список выполняемых сотрудниками работ. Каждый поставщик может поставлять несколько видов продукции. Каждый сотрудник может выполнять несколько видов работ, каждый вид работ может выполняться несколькими сотрудниками.
Задание 10
В базе данных фирмы «Мебель» хранится информация об изделиях, мастерах, их изготавливающих, клиентах фирмы, а также о накладных, составляемых при отгрузке изделий клиентам. Каждый мастер может изготавливать несколько изделий, однако каждое изделие изготавливается только одним мастером. В накладной указывается отпускная цена изделия, которая может отличаться от его себестоимости вследствие торговых наценок, индивидуальных скидок клиентам, в частности, при оптовых закупках. Руководству фирмы желательно знать, какие изделия выпускаются каждым из мастеров, сколько изделий и на какую сумму.

Пример теста1.Для представления особой предметной области в базе информационного приложения требуется…
1) Разделение описания предметной области на локальные фрагменты, описания которых может быть выполнено в среде СУБД общего назначения
2) разработка специализированной СУБД
3) использование СУБД общего назначения
4) использование нескольких СУБД общего назначения
2. Оператор BETWEEN предназначен для определения…
1) нижней границы значения поля
2) верхней и нижней границы значения поля
3) списка допустимых значений поля
4) порядка сортировки и выборке
3. Для получения таблицы из совокупности связанных таблиц путём выбора полей, удовлетворяющих заданным условиям , используются…
1) схемы
2) формы
3) запросы
4) отчёты
4. Ключ базы данных определяет…
1) ключ к записям в структуре информационного приложения
2) уникальный номер записи в базе данных
3) набор символов, ограничивающий вход в автоматизированную систему с базой данных
4) часть записи, совокупность её полей, предназначенных для формирования индексного файла
5. Язык организации данных СУБД предназначен для описания…
1) синтаксически корректных файлов
2) структуры базы данных
3) печатных отчётов по базе
4) обработки данных в базе
6. При работе с файлами современные СУБД предоставляют пользователю возможности:
а) создания новых объектов БД
б) по демонстрации инфологической модели
в) модификации уже существующих объектов БД
г) определения схемы информационных обменов
д) создания и переименования ранее созданных объектов
е) дополнение функциональных возможностей
1)а,б,в
2)в,г,д
3)а,в,д
4)а,е,б
7. Представление реляционной модели данных в СУБД реализуется в виде…
1) предикатов
2) таблиц
3) сети
4) деревьев
8. Запрос к БД представляет собой…
1) форму хранения информации
2) форму ввода информации в БД
3) вопрос к операционной системе
4) инструкцию на отбор записей в базе данных
9. Ключ к записям в БД может быть…
а) простым
б) составным
в) первичным
г) вторичным
д) дополнительным
ж) отчетным
з) запросным
1)а, б, в, г
2)б, в, е, з
3)а, б, г, з
4)г, е, ж, з
10.Основными режимами работы СУБД являются:
а) таблица
б) нормальная форма
в) форма
г) поле
д) запрос
е) ключ
ж) отчет
з) модель
1)б,в,е,з
2)а,б,г,з
3)г,е,ж,з
4)а,в,д,ж
11. По степени универсальности различают классы
а)СУБД общего назначения
б)специализированных СУБД
в)процедурных СУБД
г)программно-ориентированных СУБД
1)только а)
2) а,г
3)в,г
4)а,б
12. СУБД предназначена для…
1) организации низко уровневого программирования
2) коммерческого использования данных, хранящихся в памяти системы
3) централизованного управления БД в интересах всех работающих в этой системе
4) использования единого программного обеспечения для обработки данных
13. База данных имеет вид …
№ Пол Возраст Рост
1 Ж 25 1,40
2 М 20 1,65
3 М 27 1,80
4 Ж 18 1,75
5 М 35 2,00
6 Ж 20 1,64
7 Ж 18 1,70
Пользователь установил фильтр по полю «пол» =Ж и задал условие сортировки по возрастанию поля «рост». Порядок записей по их номеру (поле №) будет соответствовать последовательности …
1)1,6,2,7,4,3,5
2)1,6,7,4,2,3,5
3)2,3,5,1,6,7,4
4)1,6,7,4
14. Основной объект любой базы данных –это…
Код студента Фамилия Имя Отчество Дата рождения Номер группы
+ 1 Арбузов Николай Александрович 21.03.1986 ТД-11
+ 2 Кирюшин Пётр Николаевич 20.12.1985 ФК-12
+ 3 Кривинский Сергей Иванович 13.05.1986 ФК-11
+ 4 Крылова Елена Владимировна 12.12.1985 МТ-13
+ 5 Кульчий Прокофий Васильевич 24.02.1986 МСХ-21
+ 6 Патрикеев Олег Анатольевич 30.06.1986 ТД-11
+ 7 Соколова Наталья Григорьевна 19.10.1984 ФК-11
+ 8 Степанская Ольга Владимировна 03.03.1985 МТ-13
+ 9 Тимофеев Сергей Леонидович 15.11.1984 ФК-11
+ 10 Анисимов Вячеслав Петрович 01.07.1986 МСХ-21
+ 11 Поспелова Елена Дмитриевна 09.03.1986 МТ-13
+ 12 Хлебников Евгений Александрович 29.03.1986 ФК-12
0 1)запрос
2)таблица
3)форма
4)отчёт
Библиографический список1. Дейт, Крис. Введение и системы баз данных / Крис Дейт. 6-е изд. – Киев : Диалектика, 2007. – 848 с.
2. Дрибас, В. П. Реляционные модели баз данных / В. П. Дрибас. – Минск, 1982. – 146 с.
3. Карпова, Т. Базы данных: модели, разработка, реализация : учебник /Т. Карпова. – СПб. : Питер, 2000. – 304 с.
4. Мейер, Д. Теория реляционных баз данных / Д. Мейер. – М. : Мир, 1987. – 608 с.
5. Михеева, В. MS Access 2000 в подлиннике / В. Михеева. – СПб. : ВНИ, 1999. – 1000 с.
6. Сабинин, О. Интеллектуальные базы данных : учебник / О. Сабинин. – СПб. : Питер, 2000. – 480 с.
7. Хансен, Г. Базы данных. Разработка и управление / Г. Хансен. – М. : Бином, 1999. – 704 с.
8. Робинсон, С. MS Access 2000 : уч. курс / С. Робинсон. – СПб. : ВНИ, 1999. – 480 с.
9. Карпов, Б. Access 2000 : справочник / Б. Карпов. – СПб. : Питер, 1999.– 416 с.
10. Осипов, Г. Основы теории и технологии интеллектуальных систем / Г.Осипов. – СПб. : Питер, 2000. – 400 с.
Задание к работе.
Выбрать любую базу данных из списка:
1. Информационная система станции технического обслуживания автомобилей.
2. Информационная система автомобильного салона.
3. Анкетирование.
4. Информационная система аптечного склада.
5. Информационная система ателье.
6.Информационная система ГИБДД.
7.Информационная система гостиницы.
8. Информационная система отдела кадров
9. Каталог зарубежных автомобилей.
10. Коллекция монет.
11. Купля - продажа жилья.
12. Информационная система медицинской страховой компании.
13. Налогообложение - транспортный налог
14. Начисление заработной платы.
15. Информационная система общежития.
16. Информационная система паспортного стола.
17. Пассажирские автоперевозки на территории региона РФ.
18. Подписка на печатные издания.
19. Реализация программного обеспечения на компакт- дисках.
20. Информационная система магазина автозапчастей
21. Информационная система туристической фирмы
22. Информационная система городской телефонной сети
23. Домашняя библиотека
24. Учет оплаты за междугородние разговоры
25. Пункт проката видеокассет.
26. Оплата за услуги Теплосети
27. Регистратура поликлиники
28. Чемпионат России по футболу
29. Технические ВУЗы
30. Торговая база.
31. Учет банковских операций с валютными вкладами физических лиц.
32. Учет бегущих строк на телевидении для частных лиц.
33. Учет курсовых работ.
34. Учет поставок и реализации автомобилей ВАЗа.
35. Учет поставок и реализации продуктов питания.
36. Учет работы пассажирского автотранспорта.
Разработать структурную схему базы данных (в тетради, раздел 2, с.15)
Создать базу данных в Access (раздел 2.2, с. 17)
Создать связи между таблицами (раздел 2.5, с.31)
Заполнить каждую таблицу любыми данными (минимум 5 строк)
Создать три любых запроса на выборку данных (раздел 4, с.39)

Приложенные файлы

  • docx 464460
    Размер файла: 6 MB Загрузок: 0

Добавить комментарий