Конструктор запросов

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

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

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

В области панелей инструментов отображается панель инструментов Конструктор запросов. Эта панель представлена на рис. 1.2, а в табл. 1.1 приведено описание кнопок этой панели инструментов и соответствующие им команды меню.

 

Рис. 1.1.Запрос "Сотрудники Запрос" в режиме Конструктора запросов.

 

Рис. 1.2.Панель инструментов Конструктор запросов

Таблица 1.1.Описание кнопок на панели инструментов Конструктор запросов

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

Схема действий при создании нового запроса предельно проста. Для этого необходимо:

1. В окне базы данных на панели объектов выбрать ярлык Запросы.

2. В списке запросов выбрать ярлык Создание запроса в режиме конструктораили нажать кнопку Создать, в появившемся окне Новый запросвыбрать Конструктори нажать на кнопку ОК.

3. В окне Добавление таблицы (см. рис. 1.3) выбрать одну или несколько таблиц или запросов для построения нового запроса и нажать кнопку Добавить. Для удобства выбора таблиц и запросов в окне существуют следующие вкладки: Таблицы, на которой отображается список таблиц; Запросы, на которой отображается список запросов; Таблицы и запросы, на которой отображается список таблиц и запросов вместе.

Рис. 1.3.Окно Добавление таблицыКонструктора запросов

4. После добавления всех необходимых таблиц нажать кнопку Закрыть в окне Добавление таблицы. Все выбранные таблицы оказываются помещенными на верхней панели окна Конструктора запросов. Если таблицы связаны между собой, т. е. связи присутствуют явно на схеме данных, то эти связи также отображаются (рис. 1.4). Если связи на схеме данных не установлены, то Конструктор запросов автоматически устанавливает связи между таблицами, если они содержат поля, которые имеют одинаковые имена и согласованные типы.

Рис. 1.4.Запрос по нескольким связанным таблицам.

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

· Выделите нужное поле в таблице-источнике (можно выделить несколько полей, пользуясь клавишами <Shift> и <Ctrl>). Если требуется включить в запрос все поля базовой таблицы, выделите поле, обозначенное звездочкой (*). Дважды щелкните левой кнопкой мыши на выделенном поле. При этом в бланке запроса появится столбец, соответствующий выбранному полю. Затем аналогично добавьте другие поля. Столбцы в бланке запроса при этом заполняются слева направо.

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

· И наконец, вместо перетаскивания полей в бланк запроса из таблицы можно просто использовать раскрывающийся список полей в строке Полебланка запроса

Примеры разных способов включения полей в результат запроса в режиме Конструктора запросов приведены на рис. 1.5—1.7.

 

Рис. 1.5.Пример отбора полей для нового запроса в режиме Конструктора

 

Рис. 1.6.Вид окна Конструктора при выборе всех полей из таблицы

Чтобы добавить в запрос еще одну таблицу или другой запрос, необходимо:

1. Нажать кнопку Добавить таблицуна панели инструментов или выполнить команду меню Запрос, Добавить таблицу.

Рис. 1.7.Выбор полей запроса из раскрывающегося списка

2. В окне Добавление таблицывыбрать вкладку, содержащую требуемые объекты.

3. Выбрать имя объекта, добавляемого в запрос.

4. Нажать кнопку Добавить, а затем кнопку Закрыть.

 

Рис. 1.8.Изменение названия поля в запросе

В строке Условие отборауказываются условия отбора записей. Такими условиями могут быть логические выражения. Например, (>30), ( ='Иванов' ), (=10) и т. п.

Условия, находящиеся в одной строке, но в разных столбцах бланка, объединяются по логическому оператору And (И). Если нужно объединить условия отбора по логическому оператору Or (ИЛИ), разместите эти условия в разных строках бланка запроса. Пример использования нескольких условий отбора приведен на рис. 1.9.

Рис. 1.9.Задание критериев отбора записей в запросе

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

1. Выделить строку, которая должна оказаться под вставляемой строкой. Для этого нужно подвести указатель мыши к левой границе строки (он должен превратиться в жирную стрелку, указывающую вправо) и щелкнуть левой кнопкой мыши.

2. Выполнить команду Вставка, Строкиили нажать клавишу <Ins>. Новая пустая строка вставляется над выбранной. В нее можно вносить условия отбора.

Для удаления строки условий отбора:

1. Щелкните левой кнопкой мыши в любом месте строки.

2. Выполните команду Правка, Удалить строки.

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

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

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

Рис. 1.10.Установка порядка сортировки записей в запросе.

 

Рис. 1.11.Запрос в режиме Конструктора

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

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

Результаты выполнения запроса можно увидеть, переключившись в режим Таблицы с помощью кнопки Видили нажав кнопку Запускна панели инструментов.

Рис. 1.12.Диалоговое окно Сохранение

Результат выполнения запроса, созданного в режиме Конструктора, приведен на рис. 1.13.

Рис. 1.13.Результат выполнения запроса, созданного в режиме Конструктора