Создание и обработка баз данных в СУБД Access

Создание и обработка баз данных в СУБД Access

	
Общие сведения

	

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

	

	Объекты MS Access

	

	Таблица - основной объект любой базы данных; в них хранятся все данные, имеющиеся в базе данных; таблицы хранят и структуру базы (поля, их типы и свойства)

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

	Формы – объект, служащий для отображения и ввода данных с помощью специальных средств оформления.

	Отчеты – объект, предназначенный только для вывода данных на печатающее устройство.

	Страницы – специальный объект базы данных, выполненный в коде HTML, размещаемый на Web-странице, осуществляющий интерфейс между клиентом, сервером и базой данных, размещенной на сервере.

	Макросы и модули – эти категории объектов, предназначенные для автоматизации повторяющихся операций при работе с СУБД, а также для создания новых функций путем программирования на языке Visual Basic.

	Эти объекты хранятся в одном файле с расширением (.mdb). 

	
Постановка задачи

	

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

	Пусть необходимо построить базу данных, содержащую информацию об учебном процессе текущего семестра:

			Списки студентов групп;

	Перечень изучаемых предметов;

	Преподавательский состав кафедр, обеспечивающих учебный процесс;

	Сведения о лекционных и практических занятиях в каждой из групп;

	Результаты сдачи экзаменов (зачетов) по каждому из проведенных занятий.

	

	Создание файла базы данных

	

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

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

	Это окно появляется, если в окне Сервис|Параметры|Вид|Отображать установлен флажок Окно запуска.

	Упражнение 1 

	Алгоритм создания файла для новой базы данных:

		В диалоговом окне выберите переключатель Новая база данных - Создать

	5. Сохранить как новое имя базы данных ДЕКАНАТ.

		Оставьте в поле Тип файла значение по умолчанию - база данных Microsoft Access - (*.mdb).

	

	Создание таблицы базы данных

	

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

	1 Этап: Создание структуры таблицы

	Access предоставляет несколько способов создания таблицы:

	Режим таблицы - создание таблицы в Режиме таблицы;

	Конструктор - создание таблицы с помощью Конструктора таблиц;

	Мастер таблиц - создание таблицы с помощью Мастера таблиц;

	Импорт таблиц - создание таблицы путем импортирования данных из внешнего файла или другой базы данных;

			Связь с таблицами - присоединение внешнего файла или таблицы другой базы данных.

	Наиболее полно использовать все возможности системы позволяет Конструктор таблиц, с помощью которого можно в диалоговом режиме определить структуру таблицы и установить параметры всех ее элементов.

	Начните создание таблицы ГРУППА с определения ее структуры в режиме Конструктора таблиц.

	В окне Новая таблица выберите строку Конструктор.

	В окне Конструктора таблиц надо ввести имена полей таблицы и выбрать их типы, на вкладке Общие надо изменить их характеристики (свойства) в соответствии с нижеследующей таблицей.

	
Описание свойств полей таблицы ГРУППА

	

	Имя поля

	Тип 

	данных

	Ключевое поле

	Размер, байт

	Число десятичных знаков

	Подпись

	Условие на значение

	Индексир.поле

	Обязательное поле

	

	

	

	

	

	

	Сообщение об ошибке

	

	

	НГ

	текстовый

	Да (см. стр.3)

	3

	

	Ном группы

	

	Да(Сов. не доп)

	Да

	кол

	числовой

	

	байт

	

	Кол. ст. в группе

	>=0 AND <=35

	нет

	нет

	

	

	

	

	

	

	Кол.студентов больше допуст.

	

	

	пбалл

	числовой

	

	 с плавающей точкой (4 байт)

	2

	Прох.балл

	>2 AND <5 OR 0

	_______________

	Ошибка в оценке

	

	нет

	нет

	

	

	

	

	Формат: Фиксиров

	

	

	

	

	

	Если структура таблицы была создана или изменена, ее необходимо сохранить. Для сохранения структуры:

			Нажмите кнопку Сохранить на панели инструментов или выберите команду Файл|Сохранить

					В появившемся диалоговом окне введите имя таблицы (может состоять из 64 символов, кроме точки, восклицательного знака, квадратных скобок, кавычек и пробела в начале, надстрочного символа) ГРУППА

			Если новая таблица не имеет ключевого поля, для автоматического создания счетчика ключа нажмите Да. В нашем примере поле НГ является ключевым.

			Закройте таблицу

	2. Этап: Ввод записей

	Ввод записей выполняется в режиме работы с таблицами. Переход к табличному представлению базы данных осуществляется с помощью кнопки Режим таблицы панели инструментов или отметьте таблицу и нажмите кнопку Открыть.

	Введите записи в таблицы в соответствии с их полями.

	

	Данные таблицы ГРУППЫ

	ном.группы

	кол.ст. в группе

	проходной балл

	101

	30

	4,50

	102

	32

	4,50

	103

	29

	4,80

	104

	25

	4,40

	105

	24

	4,20

	201

	25

	3,90

	202

	24

	4,00

	203

	23

	3,90

	204

	24

	4,70

	205

	24

	4,20

	

	Установка первичного ключа

	Для определения первичного ключа выделите поле НГ и нажмите на панели конструктора таблиц кнопку с изображением ключа или выберите команду Ключевое поле из меню Правка. В Microsoft Access можно выделить три типа ключевых полей:

	счетчик, простой ключ и составной ключ.

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

	Простой ключ определяется полем, содержащим уникальное значение.

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

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

	В нашем примере при определении структуры таблицы СТУДЕНТ в Режиме конструктора выделите поля НГ и НС , щелкая кнопкой мыши на области маркировки поля при нажатой кнопке Ctrl . Затем нажмите кнопку панели инструментов Ключевое поле.

	

	Сохранение данных

	

	В Microsoft Access изменения сохраняются автоматически при следующих действиях:

	Переход к следующей записи

	Закрытие режима таблицы или формы

	

	Добавление и удаление записей

	

	Для добавления данных в новую запись:

			Перейдите на пустое поле новой записи

			Введите новую группу с количеством студентов и проходным баллом, нажимая Tab или Enter для перехода к следующему полю

		Для удаления записей:

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

			Нажмите Del или выберите команду Правка|Удалить записи

	Примечание:

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

			Введите в ключевое поле НГ значение, которое уже было использовано в одной из предыдущих записей, и убедитесь, что нельзя ввести запись с повторяющимся значением ключа. Отмените ввод неверных значений в поля нажатием Esc или командой Правка| Восстановить текущее поле или запись. 

			Убедитесь, что ключевое поле нельзя оставить пустым

			Введите в поле КОЛ значение, не соответствующее заданным условиям на значение (например, 40). Access выдаст сообщение, заданное в свойстве Сообщение об ошибке.

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

	

	Алгоритм импортирования таблиц из другой базы данных

	

			Файл|Внешние данные|Импорт

			В окне Импорт найдите папку Мои документы и в ней отметьте файл Исходные таблицы

			Нажмите Импорт, в открывшемся окне Импорт объектов нажмите Выделить все|Ok.

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

	

	Вставка в запись рисунка или объекта

	

	Рисунок или объект добавляется из имеющегося файла либо создается в приложении OLE (например, в MS Paint), а затем вставляется в текущую запись.

	Рассмотрим размещение объекта OLE на примере поля Фотография заведующего в таблице КАФЕДРА. Фотографии хранятся в формате графического редактора Paint в файлах с расширением .bmp.

			В окне базы данных установите курсор на таблице КАФЕДРА и нажмите кнопку Открыть 

			Заполните строки (записи) открывшейся таблицы данными в соответствии с названиями столбцов (полей)

			Для размещения поля Фотография заведующего выполните внедрение объекта OLE в файл базы данных. Установите курсор в соответствующее поле таблицы. Выполните команду меню Вставка|Объект

			В окне Вставка объекта выберите тип объекта Paintbrush Picture и установите флажок Создать из файла

			В этом окне можно ввести имя файла, содержащего фотографию.

			Для просмотра внедренного объекта установите курсор в соответствующее поле и дважды щелкните кнопкой мыши

			Чтобы вернуться из программы Paint, выполните команду Файл|Выход и возврат к таблице КАФЕДРА.

	Размещение данных типа МЕМО в таблице

	В таблице ПРЕДМЕТ предусмотрено поле ПРОГР, которое будет содержать длинный текст – краткую программу курса. Для такого поля выберите тип данных Поле МЕМО.

	Откройте таблицу ПРЕДМЕТ. Выполните ввод данных в поле ПРОГР непосредственно в таблице либо через область ввода, вызываемую нажатием Shift+F2.

	

	Связывание таблиц

	

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

	Установление связи между таблицами возможно только при следующих условиях:

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

				Обе таблицы сохраняются в одной базе данных Access.

		От полей, указанных при определении связи, зависит тип создаваемой связи:

			Отношение «один-к-одному» создается в том случае, когда оба связываемых поля являются ключевыми 

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

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

	Если для какой-то из таблиц не было определено ключевое поле, то в поле Тип отношения отображается текст «Не определено».

			Откройте окно Схема данных, нажав кнопку на панели инструментов 

			В диалоговом окне Добавление таблицы выберите вкладку Таблицы и, нажимая кнопку Добавить, разместите в окне Схема данных все ранее созданные таблицы базы данных, список которых будет отображен в диалоговом окне. Можно добавить все таблицы сразу, выделив 1-ую таблицу и нажав Shift - последнюю таблицу.

			Нажмите кнопку Закрыть. В результате в окне Схема данных будут представлены все таблицы базы данных ДЕКАНАТ со списками своих полей.

			Установите связь между таблицами ГРУППА и СТУДЕНТ по простому ключу НГ. Для этого в окне Схема данных установите курсор мыши на ключевое поле НГ главной таблицы ГРУППА и перетащите это поле на поле НГ в подчиненной таблице СТУДЕНТ Для удаления ошибочной связи в окне Схема данных выделите ненужную связь и нажмите Del.

			В открывшемся окне Изменение связей в строке Тип отношения установится один-ко-многим. Отметьте доступный для этого типа отношений параметр Обеспечение целостности данных.

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

			Установите связи по простому ключу для других пар таблиц: 

	КАФЕДРАПРЕПОДАВАТЕЛЬ (ключ ККАФ),

		ПРЕДМЕТИЗУЧЕНИЕ (ключ КП),

		ПРЕПОДАВАТЕЛЬИЗУЧЕНИЕ (ключ ТАБН),

		ГРУППАИЗУЧЕНИЕ (ключ НГ).

			Установите связь по составному ключу НГ+НС между таблицами СТУДЕНТУСПЕВАЕМОСТЬ. Для этого в главной таблице СТУДЕНТ выделите оба этих поля, удерживая клавишу Ctrl, и перетащите оба поля на поле НГ в подчиненной таблице УСПЕВАЕМОСТЬ.

			В окне Изменение связи для поля НС и НГ таблицы СТУДЕНТ выберите соответствующие поля таблицы УСПЕВАЕМОСТЬ. В этом же окне установите режим Обеспечение целостности данных и другие параметры связи.

			Аналогично по составному ключу НГ+КП+ТАБН+ВИДЗ установите связи между парой таблиц ИЗУЧЕНИЕУСПЕВАЕМОСТЬ.

	

	Ввод и корректировка данных во взаимосвязанных таблицах

	

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

	Если установлен флажок Обеспечение целостности данных, то Access разрешает пользователю:

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

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

			Удалить запись в таблице, если нет связанных с ней записей в подчиненных таблицах.

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

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

	В Access 2000 имеется возможность при просмотре таблицы отображать записи подчиненных таблиц. Поэтому пользователь может контролировать корректность связей.

			Откройте таблицу КАФЕДРА

				Если таблица КАФЕДРА не имеет столбца с плюсами, в режиме таблицы выполните команду Вставка|Подтаблица для определения связи таблицы с подчиненной таблицей. Эта связь будет внесена в свойства таблицы и даст возможность открывать связанные записи в подчиненном окне.

				Откройте таблицу ИЗУЧЕНИЕ и выполните команду Вставка|Подтаблица 

				Выберите в окне Вставка подтаблицы подчиненную таблицу УСПЕВАЕМОСТЬ. В строках Подчиненные поля и Основные поля отобразится составной ключ связи НГ+КП+ТАБН+ВИДЗ.

				Для удаления связи, зафиксированной в свойствах таблицы, откройте таблицу в Режиме таблицы и выполните команду меню Формат|Подтаблица|Удалить.

			Перейдите в Режим конструктора и нажмите на панели инструментов кнопку Свойства (или в контекстном меню) и убедитесь, что в качестве значения свойства Имя подтаблицы установлено Нет, т.е. связь удалена. Для дальнейшей работы восстановите связь.

			С помощью команды Подтаблица или свойств таблиц установите связи, которые позволят отобразить содержимое таблицы ГРУППА, подчиненные записи таблицы СТУДЕНТ и в ней подчиненные записи таблицы УСПЕВАЕМОСТЬ.

	Для этого последовательно в свойствах таблицы ГРУППА в строке Имя подтаблицы укажите Таблица СТУДЕНТ, затем открыв в Режиме конструктора таблицу СТУДЕНТ, укажите в свойствах таблицы УСПЕВАЕМОСТЬ.

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

			Создайте несколько записей об успеваемости студентов, связанных с выбранной записью таблицы ИЗУЧЕНИЕ. При этом значение ключа связи НГ+ КП+ ТАБН+ ВИДЗ вводится в поле подчиненной записи автоматически. Таким образом, для создания подчиненной записи достаточно ввести только часть ключа НС и полученную оценку.

	Чтобы увидеть из таблицы УСПЕВАЕМОСТЬ фамилии студентов, подчините ей записи из таблицы СТУДЕНТ.

	

	Разработка форм

	

	Вводить информацию в Access можно двумя способами: в таблицу и в форму.

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

	Любая форма строится на основе Access-таблицы или запроса. Имена полей извлекаются из спецификации таблицы, а поля в форме можно расположить по своему усмотрению. На основе одной таблицы пользователь может построить несколько форм: одну - для деканата, другую - для отдела стратегии, третью- для студентов и т.д.

	Форму можно создать тремя способами:

			С помощью конструктора форм;

			С помощью мастера форм;

			Используя автоформу

	Каждую Access-форму можно представить на экране в одном из 3-х режимов:

			В режиме конструктора

			В режиме формы (рабочем режиме)

			В режиме таблицы

	Переключение между режимами осуществляется с помощью команды Вид.

				В окне базы данных ДЕКАНАТ выберите объект Формы и нажмите кнопку Создать.

				В окне новая форма выберите в качестве источника данных таблицу ПРЕДМЕТ и режим создания – Автоформа: в столбец. Обратите внимание, что подписи полей в форме соответствуют заданным их свойствам при определении структуры таблицы.

			При сохранении формы Access спросит об имени формы. Можно оставить по умолчанию ПРЕДМЕТ, который соответствует имени таблицы- источника.

	

		Конструирование формы

			

			Для конструирования форм в Access используется Конструктор форм. Форма в этом режиме имеет 3 области:

	Область данных

	Заголовок формы

	Примечание формы,

	которые могут быть образованы по команде Вид/Заголовок/Примечание формы.

	

	Редактирование формы в Режиме конструктора

	

	Рассмотрите технику редактирования на примере ранее созданной формы

			Откройте форму ПРЕДМЕТ

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

				Для ввода текста заголовка расширьте область заголовка формы.

				Создайте графический элемент Надпись, перетащив кнопку Надпись с панели элементов на поле заголовок форм, если их нет на экране, то включите через меню Вид

				Введем в рамку созданного элемента текст заголовка ПРОГРАММА КУРСА. 

				При выделенном элементе откройте диалоговое окно свойств из контекстного меню и выберите вкладку Макет и установите шрифт ArialCyr 12, выравнивание по центру, курсивом. Оформление - приподнятое. 

				Завершите создание элемента нажатием Enter или щелчком вне рамки.

				Введите в область заголовка еще одну надпись: Казахский экономический университет им. Т.Рыскулова.

				Для сохранения формы под новым именем ПРЕДМЕТ-ПРОГРАММА надо выполнить команду Файл/Сохранить

				Перейдя в режим формы, введите новую запись, установив пустую запись кнопкой перехода►*. Добавленную запись можно проверить в таблице ПРЕДМЕТ

				Завершите создание элемента нажатием Enter или щелчком вне рамки.

				Введите в область заголовка еще одну надпись: Казахский экономический университет им. Т.Рыскулова.

				Для сохранения формы под новым именем ПРЕДМЕТ-ПРОГРАММА надо выполнить команду Файл/Сохранить

				Перейдя в режим формы, введите новую запись, установив пустую запись кнопкой перехода►*. Добавленную запись можно проверить в таблице ПРЕДМЕТ

			

	Многотабличные формы

	

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

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

			В окне базы данных ДЕКАНАТ выберите Формы / Создать

			Далее выберите режим Мастер форм и таблицу ГРУППА

			Выберите для таблицы ГРУППА в списке Доступные поля - все поля - >>

			Выберите далее из списка Таблицы/Запросы таблицу СТУДЕНТ и в списке Доступные поля этой таблицы – тоже все поля. Эта таблица будет источником записей подчиненной формы.

			В окне Создание форм схематично отобразится макет формы с перечнем полей в основной части формы и в подчиненной форме, если в рамке Выберите тип представления данных выделена таблица-источник записей основной части формы (ГРУППА).

			Далее выберите Подчиненные формы

			Внешний вид - ленточный

			Стиль – Обычный

			В последнем окне Создание форм озаглавьте главную форму - СПИСОК ГРУППЫ и подчиненную форму - СПИСОК СТУДЕНТОВ. Выберите Открытие формы для просмотра и ввода данных и нажмите Готово.

				Для редактирования созданной формы перейдите в Режим конструктора. Это можно выполнить и в последнем сеансе окна Создание форм, выбрав дальнейшие действия мастера - Изменить макет форм.

				Введите в область заголовка полное название формы СПИСОК СТУДЕНТОВ ГРУППЫ №, используя кнопку Надпись и перетащив со списка полей НГ. (Если окно со списком полей отсутствует, то - Вид|Список полей.) Появившуюся надпись Ном группы выделите и нажмите Del. Отформатируйте заголовок по своему усмотрению.

				Для встраивания кнопки в нужном месте (рис. на стр. 12) нажмите на панели элементов Кнопка. После переноса кнопки запустится мастер кнопок Создание кнопок.

				В окне мастера кнопок выберите действие, которое необходимо выполнить при нажатии кнопки. В области Категории выберите Переходы по записям, в области Действия – Предыдущая запись.

				В следующем сеансе отметьте Рисунок и показать все рисунки. Можете выбрать Стрелка вверх (синяя) и Готово.

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

				Добавьте рядом с кнопками поясняющий текст: Предыдущая и Следующая, с помощью кнопок Надписи на панели элементов.

				Для создания кнопки закрытия формы в области Категории выберите Работа с формой, а в области Действия – Закрыть Форму. 

				Для ввода данных в таблицы ГРУППА и СТУДЕНТ можно открыть в режиме формы СПИСОК ГРУППЫ, которая обеспечит одновременную работу с данными двух таблиц.

				Для перехода к последней записи можно использовать кнопку Следующая.

				Введите дополнительно группу 106, количество студентов – 2, средний балл - 4 и любые две фамилии с соответствующими данными

				Закрыть форму

				Данные проверьте в таблицах ГРУППА и СТУДЕНТ

		
Проектирование запросов

		

		Запросы предназначены для отбора данных, удовлетворяющих заданным критериям. Запрос- это объект базы данных, допускающий многократное использование. Результат запроса – набор записей представленных в табличном виде, который можно изменять, добавлять и удалять. В нем отображаются также записи, добавляемые, удаляемые и изменяемые в исходных таблицах. Сами запросы могут служить, наряду с таблицами, источниками записей для всех объектов базы данных.

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

					QBE- запросы (Query By Example –Запросы по образцу)

				Запрос на выборку;

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

				Запрос на создание таблицы;

				Запрос на обновление;

				Запрос на добавление записей;

				Запрос на удаление записей;

				Параметрический запрос.

					Запросы на языке SQL ( Structured Query Language – Структурированный язык запросов). SQL – стандартизованная форма составления запросов для обработки реляционных базы данных, представляющая собой последовательность инструкции. При выполнении QBE – запросов они транслируются в соответствующие SQL –запросы.

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

	Создайте запрос, который проверит правильность задания общих часов в таблице ПРЕДМЕТ. По запросу должны отбираться только те записи, в которых значение в поле ЧАСЫ не равно значению, получаемому при сложении значений полей ПР и ЛЕК.

	Выберите объект Запрос /Создать

	В окне Новый запрос выберите Конструктор. В появившемся окне Добавление таблицы выберите таблицу ПРЕДМЕТ и нажмите кнопку Добавить. Выбранная таблица будет отображена в области схемы данных запроса.

	В окне Конструктора перетащите (или дважды щелкните ) из списка полей таблицы ПРЕДМЕТ поля НП, ЧАСЫ, ЛЕК и ПР в столбцы бланка запроса в строку Поле

	Если вы по ошибке перетащили ненужное поле, то выделите столбец и нажмите Del или выполните команду Правка|Удалить столбец

	В строке Вывод на экран отметьте поля, иначе они не будут включены в запрос

	В строке Условие отбора для столбца ЧАСЫ запишите условие <>[ЛЕК]+[ПР]

	Выполните запрос, нажав на панели конструктора запросов кнопку Запуск или или: Запрос/Запуск. На экране появится окно запроса в режиме таблицы с записями из таблицы ПРЕДМЕТ, отвечающими заданным условиям отбора.

			Сохраните запрос, нажав кнопку Сохранить и задав ему имя ПРИМЕР2

			Закройте текущий запрос 

			Выполните сохраненный запрос, нажав кнопку Открыть

	Определите фактическое число студентов и подсчитайте средний проходной балл в группе.

	Создайте в Режиме конструктора запрос на выборку для таблицы СТУДЕНТ

	Из списка полей таблицы перетащите в бланк запроса НГ, НС и ПБАЛЛ

	Нажмите кнопку Групповые операции (Вид/Групповые операции)

	Замените слово Группировка в столбце НС на Count, в ПБАЛЛ - на Avg

	Замените подпись поля НС на Фактическое число студентов, а ПБАЛЛ - на Средний проходной балл группы. Для этого из контекстного меню выберите Свойства. В окне Свойства поля наберите в строке Подпись соответствующие названия.

	Для ограничения точности результата двумя знаками выберите в окне Свойства поля для поля ПБАЛЛ в строке Формат поля – Фиксированный

	Сохраните этот запрос под именем ЧИСЛО СТУДЕНТОВ И СРЕДНИЙ БАЛЛ ГРУППЫ

	Рассмотрите технологию конструирования многотабличного запроса.

	Пусть необходимо получить информацию об оценках, полученных студентами по всем предметам.

	В режиме Конструктор создайте новый запрос.

	В окне Добавление таблицы выберите СТУДЕНТ, УСПЕВАЕМОСТЬ, ПРЕДМЕТ.

	Если хотите видеть в бланке запроса наряду с именем поля еще и имя таблицы, выполните команду Вид/Имена таблиц

	Перетащите в строку бланка запроса Поле поля:

			ФИО - из таблицы СТУДЕНТ

			НП - из таблицы ПРЕДМЕТ

			ОЦЕНКА – из таблицы УСПЕВАЕМОСТЬ

	Если необходимо получить информацию об успеваемости конкретных студентов, например, Шакиртовой и Бидаралова, введите эти значения в строку Условие отбора записей. Запишите в поле ФИО фамилии студентов в разных строках бланка запроса, т.к. необходимо выбрать записи по логике «или». Поскольку инициалы студентов не известны, фамилии задайте с использованием шаблона *. Заметьте, что система сама вставляет оператор Like, определяющий поиск по образцу.

	Выполните запрос и сохраните под именем ОЦЕНКИ ПО ПРЕДМЕТАМ

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

			Откройте запрос ОЦЕНКИ ПО ПРЕДМЕТАМ в Режиме конструктора.

			В строке Условие отбора поля ФИО введите обращение к пользователю в квадратных скобках, например, [Фамилия и инициалы студента]

			Для поля НП - второй параметр запроса [Введите наименование предмета]

			Выполните запрос, задав любую фамилию из таблицы СТУДЕНТ и любой предмет из таблицы УСПЕВАЕМОСТЬ

	Построение запроса на основе других запросов

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

	1. Создайте запрос на выборку, в котором по таблице ПРЕПОДАВАТЕЛЬ с помощью функции Count подсчитывается число преподавателей на каждой кафедре. Сохраните запрос под именем ЧИСЛО ПРЕПОДАВАТЕЛЕЙ КАФЕДРЫ.

	2. Для подсчета общего числа часов занятий, проводимых каждой кафедрой, создайте запрос на базе таблиц ПРЕПОДАВАТЕЛЬ и ИЗУЧЕНИЕ. 

	3. Сохраните запрос под именем ЧАСЫ КАФЕДРЫ и выполните.

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

			Создайте запрос в Режиме конструктора. В окне Добавление таблицы откройте вкладку Таблицы и запросы и выберите таблицу КАФЕДРА и два предыдущих запроса

			В строку Поле из таблицы КАФЕДРА перенесите поля ККАФ и НКАФ, а из запросов - соответственно Count_ ТАБН и Sum_ЧАСЫ. Таблица КАФЕДРА включена в запрос для дополнения кода кафедры ее наименованием.

			Для создания вычисляемого поля, рассчитывающего среднюю нагрузку преподавателя, введите выражение [Sum_ЧАСЫ]/[ Count_ ТАБН]. Для этого в строке Поле пустого столбца с помощью контекстно-зависимого меню вызовите Построитель выражения, выбрав меню Построить. В левой части окна Построителя выражения в папке Запросы выберите соответствующие запросы. Справа отобразится список полей. Последовательно выбирая нужные поля, нажимая кнопку Вставить и вставляя знаки операции, сформируйте необходимое выражение в верхней части окна, Ok. 

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

			Задайте в Подпись поля значение Средняя нагрузка преподавателя, в Формат поля - Фиксированный и в Число десятичных знаков – 0

			Сохраните запрос под именем НАГРУЗКА ПО КАФЕДРАМ

	
Запрос на создание таблицы

	

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

	Сконструируйте запрос на создание таблицы на запросе ЧИСЛО СТУДЕНТОВ и СРЕДНИЙ БАЛЛ ГРУППЫ.

			В окне базы данных выделите названный запрос и откройте его в режиме Конструктора

			Выберите в меню Запрос|Создание таблицы

			В окне Создание таблиц введите имя ЧИСЛО СТУДЕНТОВ и отметьте В текущей базе данных 

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

	Запрос на обновление

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

	Рассмотрите технологию формирования на примере обновления поля КОЛ (количество студентов группы в таблице ГРУППА).

			Для формирования запроса на обновление сначала создайте Запрос на выборку на основе двух таблиц: обновляемой таблицы ГРУППА и таблицы ЧИСЛО СТУДЕНТОВ, содержащей данные для обновления. В подсхеме данных запроса автоматически установится связь этих таблиц по полю НГ

			Преобразуйте запрос на выборку в Запрос на обновление, выбрав из меню Запрос|Обновление 

			Заполните бланк запроса. Перетащите обновляемое поле КОЛ в строку Поле. В строку Обновление введите имя поля Count_НС, заключенное в квадратные скобки

			Просмотрите содержимое поля КОЛ перед обновлением в режиме Таблица

			Сохраните запрос под именем ОБНОВЛЕНИЕ ТАБЛИЦЫ ГРУППА.

			Выполните запрос

			Обратите внимание на измененные значения содержимого поля КОЛ в таблице ГРУППА

	

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

	

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

	Пусть необходимо для каждого преподавателя определить число студентов, знания которых он оценил. Фамилии преподавателей можно получить из таблицы ПРЕПОДАВАТЕЛЬ, которая находится в отношениях один-ко-многим с таблицей УСПЕВАЕМОСТЬ. Поскольку с помощью мастера невозможно построить перекрестный запрос из нескольких таблиц, то необходимо сначала создать запрос на выборку для таблиц УСПЕВАЕМОСТЬ и ПРЕПОДАВАТЕЛЬ 

			Создайте с помощью мастера простой запрос. В этом запросе выберите из таблицы ПРЕПОДАВАТЕЛЬ поле ФИО, а из таблицы УСПЕВАЕМОСТЬ – поля ВИДЗ и НС. Сохраните запрос с именем ПРЕПОДАВАТЕЛЬ - ЗАПРОС

			Для создания следующего запроса нажмите кнопку Создать| Перекрестный запрос

			В окне мастера выберите запрос ПРЕПОДАВАТЕЛЬ - ЗАПРОС

			В следующем окне мастера выберите для заголовков строк поле ФИО. Для выбора используйте кнопку >.

			Для заголовков столбцов установлено поле ВИДЗ

			Для вычисления значений ячеек выберите поле НС и функцию Число(Count)

	В отличие от мастера Конструктор позволяет создать многотабличный перекрестный запрос. Рассмотрите создание перекрестного запроса, в котором заголовками строк будут фамилии преподавателей, заголовками столбцов - наименование предметов, а на пересечении строк и столбцов - сумма часов.

			Начните, как обычно, создание запроса в режиме Конструктора

			В окне Добавление таблицы включите в схему данных таблицы ПРЕДМЕТ, ИЗУЧЕНИЕ и ПРЕПОДАВАТЕЛЬ

			В бланк запроса перетащите поля ФИО из таблицы ПРЕПОДАВАТЕЛЬ, НП – из таблицы ПРЕДМЕТ, ЧАСЫ – из таблицы ИЗУЧЕНИЕ

			Выполните команду меню Запрос/Перекрестный. В бланке запроса появятся две дополнительные строки Групповая операция и Перекрестная таблица

			В строке Перекрестная таблица для поля ФИО выберите из списка значение Заголовки строк, для НП – Заголовки столбцов, для поля ЧАСЫ - Значение

			В строке Групповая операция для поля ЧАСЫ выберите Sum, оставив для всех остальных полей – Группировка

	
Отчеты

	

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

	Рассмотрите создание отчета на примере получения списков студентов по группам.

			Определите требования к макету отчета:

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

				Необходимо рассчитать средний проходной балл для каждой группы

				Записи должны выводиться в алфавитном порядке фамилий

		Начните создание отчета с помощью Мастера, а затем откорректируйте в режиме Конструктора.

				На вкладке Отчет нажмите на кнопку Создать

				В окне Новый отчет откройте список таблиц и выберите СТУДЕНТ, затем - Мастер отчетов

				Выберите поля НГ, НС, ФИО, ГОДР, ПБАЛЛ

				Данные в отчете должны быть сгруппированы по полю НГ

				В следующем окне мастера определите способ сортировки (в нашем случае по ФИО). Нажмите кнопку Итоги и выберите для поля ПБАЛЛ функцию Avg

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

			По умолчанию отчет примет имя СТУДЕНТ

	Для редактирования отчета перейдите в Режим конструктора.

		В разделе Заголовок отчета из пункта контекстного меню Свойства в строке Подпись поменяйте заголовок на Списки студентов, здесь же выберите размер шрифта, начертание

			Из раздела Верхний колонтитул удалите поле НГ, чтобы оно не повторялось. Для этого выделите его и Del. Выбрав из панели элементов Надпись, введите подпись поля: Список студентов группы. Установите нужный шрифт в элементах.

			Аналогично замените Подпись поля в разделе Примечание группы НГ на Средний проходной балл. В свойствах элемента функции =Avg(ПБАЛЛ) на вкладке Макет в строке Формат поля выберите Фиксированный, а число десятичных знаков – 2.