Создание межтабличных связей начинается в окне базы данных с выполнения команды Сервис ® Схема данных или со щелчка на кнопке Схема данных на панели инструментов, что вызывает появление на экране окна Схема данных. Одновременно с открытием этого окна открывается диалоговое окно Добавление таблицы. Если это окно не появляется, то его можно вызвать на экран щелчком правой клавиши мыши в окне Схема данных и выбором из контекстного меню команды Добавить таблицу. На вкладке Таблицы окна Добавление таблицы можно выбрать таблицы, между которыми создаются связи. Эти таблицы выбираются щелчком на кнопке Добавить, после чего в окне Схема данных открываются списки полей таблиц, например таблицы Сотрудник, содержащей поля Табельный номер, Фамилия и инициалы, Подразделение, Должность, Оклад и Зарплата, и таблицы Адрес с полями Табельный номер, Фамилия и инициалы, Дата рождения и Адрес проживания В обеих таблицах ключевым является поле Табельный номер. Это поле в таблице Сотрудник перетаскивается мышью на поле Табельный номер таблицы Адрес, и на экране появляется окно Изменение связей
На левой панели окна Изменение связей будет отображено поле Табельный номер таблицы Сотрудник, которая считается главной, а на правой панели высвечивается поле Табельный номер таблицы Адрес, которая является связанной, т. е. отображаются имена полей, участвующих в связи (в окне поля можно изменять). В окне Изменение связей можно установить флажок параметру Обеспечение целостности данных. В этом случае данные из ключевого поля главной таблицы Сотрудник удалять нельзя.
После щелчка на кнопке Создать окна Изменение связей в окне Схема данных установленная между таблицами связь отобразится в виде линии Межтабличную связь можно удалить или изменить, если её выделить в окне Схема данных, нажать на правую клавишу мыши и выбрать из контекстного меню соответствующую команду.
Формирование запросов на выборку
Основным назначением запросов является отбор данных по критериям поиска. Принципы формирования запросов можно рассмотреть на примере создания запроса, позволяющего выбрать из таблицы Сотрудник только работников определенной должности, например мастеров. В этом случае критерием поиска является наименование должности мастер поля Должность. Результатом поиска будут записи, у которых содержимое поля Должность соответствует критерию поиска. Причем по желанию пользователя в эти записи могут входить не все поля, содержащиеся в записях таблицы Сотрудник. Допустим, в них будут отсутствовать поля Табельный номер и Зарплата.
Как и при создании таблиц, пользователям, имеющим малый опыт работы с Access, рекомендуется форматировать запросы с помощью Конструктора. Для этого в окне базы данных необходимо выбрать объект Запросы и дважды щелкнуть на значке Создание запроса в режиме конструктора (или щелкнуть на кнопке Создать, а затем выбрать команду Конструктор). Эти действия вызовут открытие окна Запрос на выборку; чаще всего это окно называется бланком запроса по образцу.
Одновременно с бланком запроса по образцу открывается диалоговое окно Добавление таблицы, в котором в качестве источника данных для запроса выбирается таблица, например Сотрудник, а затем выполняется щелчок на кнопке Добавить. Имя таблицы с перечнем содержащихся в ней полей появится в верхней части бланка запроса. Выбрав источник данных, нужно щелкнуть на кнопке Закрыть, и окно Добавление таблицы закроется.
В тех случаях, когда запрос формируется на основании не одной, а нескольких таблиц, необходимо последовательно выбирать таблицы из списка и щелкать на кнопке Добавить, а по окончании процесса выбора таблиц из списка щелкнуть на кнопке Закрыть. Следует помнить, что формировать запросы с использованием нескольких таблиц можно только при наличии связей между выбранными таблицами. Эти связи отображаются в верхней части бланка запроса на выборку.
Нижняя часть бланка запроса разбита на столбцы, причем каждому столбцу соответствует определенное поле будущей результирующей таблицы. Для создания результирующей таблицы необходимо «перенести» имена полей таблицы (или таблиц) из верхней части бланка запроса в его нижнюю часть (в строку Поле), тем самым осуществив выбор полей, включаемых в результирующую таблицу. Это можно проделать несколькими способами:
·
в нижней части бланка запроса в строке Поле выполнить щелчок на пустой ячейке, а затем из списка полей, раскрываемого щелчком на кнопке выбора данных из списка, выбрать требуемое поле;· в верхней части бланка запроса осуществить двойной щелчок на имени поля требуемой таблицы;
· в верхней части запроса выделить одно или несколько полей таблицы (при нажатой клавише [Ctrl]), которые затем перетащить в строку Поле нижней части бланка;
· для включения в запрос всех полей таблицы последние выделить двойным щелчком на строке заголовка таблицы, а затем перетащить в строку Поле.
В нижней части бланка запроса имеется также строка Сортировка. При необходимости упорядочивания данных в результирующей таблице по какому-либо полю необходимо щелкнуть на ячейке этого поля, находящейся в строке Сортировка, затем выполнить щелчок на появившейся в этой ячейке кнопке выбора данных из списка и выбрать метод сортировки – по возрастанию или убыванию. Для многоуровневой сортировки, осуществляемой сразу по нескольким полям, предварительно требуется расположить поля в нижней части бланка запроса в определенном порядке. Данные сортируются сначала по полю, расположенному левее в бланке запроса, затем по другому полю, для которого включена сортировка, и так далее слева направо. Перемещать поля можно обычным перетаскиванием, предварительно выделив требуемый столбец щелчком над ячейкой с наименованием поля (указатель мыши при этом должен принять форму стрелки, направленной вниз).
В каждой ячейке строки Вывод на экран проставлен флажок, т. е. по умолчанию опция Вывод на экран активна для всех полей. При этом предполагается, что все поля, включенные в запрос, должны выводиться на экран, что не всегда необходимо. Например, надо отсортировать данные по возрасту сотрудников, а поле Дата рождения не должно отображаться в результирующей таблице. В этом случае флажок поля Дата рождения сбрасывается щелчком по значку Ú.
Критерии поиска задаются в строке Условие отбора. Для вывода в результирующей таблице списка сотрудников определенной должности необходимо в ячейку строки Условие отбора поля Должность ввести какое-либо значение, например мастер. Если необходимо вывести список работников нескольких должностей, например мастеров и инженеров, то в строке Условие отбора указывается одно из значений поля Должность – мастер, а в строке или – другое значение этого поля – инженер. Этот критерий поиска можно задавать и в одной строке Условие отбора, введя в ячейку поля Должность выражение: мастер OR инженер, в котором ключевое слово OR указывает на использование в выражении логической операции ИЛИ.
Данные можно отбирать не только по значениям текстовых полей, но и по значениям полей других типов. Например, для вывода списка сотрудников, родившихся позже определенной даты, допустим позже 01.01.70, необходимо ввести в ячейку поля Дата рождения выражение > 01.01.70 (после запуска запроса Access преобразует это выражение: > #01.01.70#).
Для того чтобы вывести список сотрудников, оклад которых больше или равен 3000 рублей, но меньше или равен 8000 рублей, в ячейку поля Оклад вводится выражение >=3000 And <=8000. Заполнив бланк запроса, можно просмотреть результирующую таблицу, щелкнув на кнопке ! (Запуск), расположенной на инструментальной панели, или выполнив команду Запрос ® Запуск.
При закрытии диалогового окна Запрос на выборку необходимо задать имя запроса, с которым он будет сохранен. Запрос можно сохранить и до закрытия диалогового окна с помощью команды Файл ® Сохранить.
Для просмотра результирующей таблицы сохраненного запроса его имя маркируют в окне базы данных и щелкают на кнопке Открыть. Запрос также открывается двойным щелчком на его значке, отображенном в окне базы данных.
Запросы, как правило, служат для выполнения определенной операции. При изменении какого-либо критерия поиска приходится создавать новый запрос. Например, в одном запросе критерием поиска является значение мастер поля Должность, а в другом запросе – значение инженер этого же поля. Однако эти критерии можно использовать в одном так называемом параметрическом запросе, в котором они задаются не при формировании запроса, а при его выполнении.
Параметрический запрос формируется аналогично запросу на выборку. Отличие заключается лишь в том, что в строке Условие отбора указывается не конкретное значение поля, по которому ведется отбор данных, а вводится в квадратных скобках сообщение пользователю о необходимости задания критерия поиска. Так вместо значения мастер поля Должность в ячейку этого поля может быть записано сообщение [введите наименование должности]. При выполнении запроса это сообщение выдаётся пользователю в диалоговом окне Введите значение параметра После ввода требуемого значения поля Должность, например инженер, и щелчка на кнопке OK на экран будет выведен список инженеров.