logo search
INFO2

Формирование запросов на выборку

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

Как и при создании таблиц, пользователям, имеющим малый опыт работы с Access, рекомендуется форматировать запросы с помощью Конструктора. Для этого в окне базы данных необходимо выбрать объектЗапросы и дважды щелкнуть на значке Создание запроса в режиме конструктора (или щелкнуть на кнопке Создать, а затем выбрать команду Конструктор). Эти действия вызовут открытие окна Запрос навыборку; чаще всего это окно называется бланком запроса по образцу.

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

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

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

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

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

 в верхней части запроса выделить одно или несколько полей таблицы (при нажатой клавише Ctrl), которые затем перетащить в строкуПоле нижней части бланка;

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

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

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

Критерии поиска задаются в строкеУсловие отбора. Для вывода в результирующей таблице списка сотрудников определенной должности необходимо в ячейку строки Условие отбора поляДолжность ввести какое-либо значение, например мастер. Если необходимо вывести список работников нескольких должностей, например мастеров и инженеров, то в строке Условие отборауказывается одно из значений поляДолжность – мастер, а в строкеили – другое значение этого поля –инженер. Этот критерий поиска можно задавать и в одной строкеУсловие отбора, введя в ячейку поля Должность выражение:мастер OR инженер, в котором ключевое слово OR указывает на использование в выражении логической операции ИЛИ.

Данные можно отбирать не только по значениям текстовых полей, но и по значениям полей других типов. Например, для вывода списка сотрудников, родившихся позже определенной даты, допустим позже 01.01.70, необходимо ввести в ячейку поля Дата рождениявыражение > 01.01.70 (после запуска запроса Accessпреобразует это выражение: > #01.01.70#).

Для того чтобы вывести список сотрудников, оклад которых больше или равен 3000 рублей, но меньше или равен 8000 рублей, в ячейку поля Оклад вводится выражение>=3000 And <=8000. Заполнив бланк запроса, можно просмотреть результирующую таблицу, щелкнув на кнопке  (Запуск), расположенной на инструментальной панели, или выполнив команду Запрос Запуск.

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

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