Создание
и изменение запроса с помощью Конструктора запросов
Для изменения
уже существующих запросов и для создания новых запросов используется Конструктор
запросов. Для того чтобы открыть запрос в режиме Конструктора, выделите в списке
один из существующих запросов, например только что созданный запрос "Сотрудники
Запрос", и нажмите кнопку
Конструктор
(Design) на панели инструментов
окна
База данных
(Database).
Появляется
окно Конструктора запросов (рис. 4.5). В верхней части окна отображается таблица
(или несколько таблиц, если запрос многотабличный) в том виде, в каком таблицы
отображаются в окне
Схема данных
(Relationship). Таблицы — источники
данных для запроса, мы будем называть
базовыми
таблицами запроса. В нижней
части окна находится
бланк запроса
— таблица, ячейки которой используются
для определения запроса. В бланке отображаются все столбцы, включенные в результирующее
множество запроса.
Для того чтобы
просматривать полностью бланк запроса и все исходные таблицы, используют линейки
прокрутки.
В области
панелей инструментов Access отображается панель инструментов
Конструктор
запросов
(Queries Design). Эта панель представлена на рис. 4.6, а в табл.
4.1 приведено описание кнопок этой панели инструментов и соответствующие им
команды меню.
Рис. 4.5.
Запрос "Сотрудники Запрос" в режиме Конструктора запросов
Рис.
4.6.
Панель инструментов
Конструктор запросов
Таблица
4.1.
Описание кнопок на панели инструментов
Конструктор
запросов
Кнопка
|
Описание
|
Команда
меню
|
||
Вид (View)
|
Отображение запроса
в различных режимах. Чтобы изменить режим отображения запроса, нажмите
стрелку справа от кнопки и в появившемся списке выделите нужный элемент.
Если просто нажать эту кнопку, запрос будет отображен в режиме Таблицы
|
Вид, Режим таблицы
(View, Datasheet
View)
|
||
Сохранить (Save)
|
Сохранение активного
запроса
|
Файл, Сохранить
(File, Save)
|
||
Печать (Print)
|
Печать результатов
запроса без открытия диалогового окна Печать
|
Нет вЬ
|
||
Предварительный
просмотр
(Print Preview)
|
Предварительный
просмотр запроса перед печатью
|
Файл, Предварительный
просмотр
(File, Print
Preview)
|
||
Орфография
(Spelling)
|
Проверка орфографии
в текстовых полях запроса
|
Сервис, Орфография
(Tools, Spelling)
|
||
Кнопка
|
Описание
|
Команда меню
|
||
Вырезать (Cut)
|
Удаление выделенных
объектов из запроса в буфер обмена Windows
|
Правка, Вырезать
(Edit, Cut)
|
||
Копировать (Сору)
|
Копирование выделенных
объектов запроса в буфер обмена
|
Правка, Копировать
(Edit, Copy)
|
||
Вставить (Paste)
|
Вставка содержимого
буфера обмена в запрос
|
Правка, Вставить
(Edit, Paste)
|
||
Формат по образцу
(format Painter)
|
Копирование параметров
форматирования из одного выделенного объекта в другой такого же типа
|
Нет
|
||
Отменить (Undo)
|
Отмена последнего
изменения запроса
|
Правка, Отменить
(Edit, Undo)
|
||
Тип запроса (Query
Туре)
|
Изменение типа
запроса. Для изменения типа запроса щелкните по стрелке справа от
кнопки и выберите из списка нужный тип запроса
|
Запрос, Выборка
(Query, Select
Query)
|
||
Запуск (Run)
|
Выполнение запроса
|
Запрос, Запуск
(Query, Run)
|
||
Отобразить таблицу
(Show Table)
|
Выводится диалоговое
окно Добавление таблицы (Show Table)
|
Запрос, Добавить
таблицу (Query, Show Table)
|
||
Групповые операции
(Totals)
|
Группировка записей
в запросе и расчет итоговых значений
|
Вид, Групповые
операции (View, Totals)
|
||
Набор значений
(Top Values)
|
Отобразить только
первые записи запроса. Количество отображаемых записей указывается
в поле ввода либо в штуках, либо в процентах
|
Нет
|
||
Свойства
(Properties)
|
Открытие окон
свойств выделенных объектов: запроса или поля запроса
|
Вид, Свойства
(View, Properties)
|
||
Построитель (Build)
|
Вызов построителя
для создания выражения. Кнопка доступна только тогда, когда активизировано
свойство запроса или поля запроса, которое допускает ввод выражения,
например Условие отбора (Criteria)
|
Нет
|
||
Окно базы данных
(Database Window)
|
Отображение окна
базы данных
|
Окно, 1 (Window,
1)
|
||
Новый объект
(New Object)
|
Создание нового
объекта базы данных. Чтобы выбрать тип создаваемого объекта, нажмите
стрелку справа от кнопки
|
Нет
|
||
Справка по Microsoft
Access
(Microsoft Access
Help)
|
Вызов помощника
и получение справки по Access 2002
|
Справка, Справка
по Microsoft Access
(Help, Microsoft
Access Help)
|
||
С использованием
кнопок панели инструментов вы будете знакомиться по мере изучения работы с запросами,
как в данной главе, так и
в гл. 8.
А теперь рассмотрим,
как создать новый запрос с помощью Конструктора запросов. Для этого необходимо:
Рис. 4.7.
Окно
Добавление таблицы
Конструктора запросов
Рис. 4.8.
Запрос по нескольким связанным таблицам
Внимание
Иногда Конструктор устанавливает лишние связи, основываясь только на именах и типах полей. Это может привести к некорректным результатам запроса, поэтому нужно обязательно проверять, как отображаются связи между таблицами в окне Конструктора запросов, и удалить вручную лишние связи. Для этого выделите лишнюю связь, щелкнув по ней левой кнопкой мыши, и нажмите клавишу <Delete>. Работа со связями в окне Конструктора запросов выполняется точно так же, как в окне Схема данных (Relationship) (см. разд. "Связывание таблиц на схеме данных" гл. 2).
Примеры разных
способов включения полей в результат запроса в режиме Конструктора запросов
приведены на рис. 4.9—4.11.
Рис. 4.9.
Пример отбора полей для нового запроса в режиме Конструктора
Рис. 4.10.
Вид окна Конструктора при выборе всех полей из таблицы
Чтобы добавить
в запрос еще одну таблицу или другой запрос, необходимо:
Рис. 4.11.
Выбор полей запроса из раскрывающегося списка
Замечание
Если нужная таблица находится в другой базе данных или другом приложении, необходимо сначала присоединить эту таблицу к текущей базе данных.
Замечание
Добавить таблицу или еще один запрос в окно Конструктора запросов можно также путем перетаскивания мышью названия таблицы или запроса из окна базы данных.
Чтобы удалить
базовую таблицу из запроса, необходимо выделить ее, щелкнув на любом месте в
списке ее полей, и нажать клавишу <Delete>.
Чтобы удалить
поле из запроса, выделите нужный столбец в бланке запроса, а затем нажмите клавишу
<Delete>. Чтобы выделить столбец, пользуйтесь областью выделения столбцов
— узкой серой полоской над столбцами в бланке запроса. Когда вы подводите указатель
мыши к этой области, он преобразуется в жирную стрелку, направленную вниз.
Поля в таблице,
являющейся результатом запроса, отображаются в том порядке, в котором они следуют
в бланке запроса. Если требуется изменить порядок их следования, переставьте
соответствующим образом столбцы в бланке запроса. Делается это стандартным способом,
т. е. сначала выделяется нужный столбец или несколько столбцов, а затем они
перетаскиваются мышью на новое место. При этом отпускать кнопку мыши нужно тогда,
когда указатель мыши окажется перед тем столбцом, который делжен быть справа
от вставляемого столбца. После вставки все столбцы, расположенные справа от
указателя, сдвигаются вправо. Если вы перемещаете столбцы в конец запроса, то
отпускайте кнопку мыши, когда указатель окажется перед первым свободным столбцом.
В режиме Конструктора
запросов можно изменять имена полей запроса. Чтобы переименовать поле, необходимо
установить курсор в бланке запроса перед первой буквой его имени и ввести новое
имя и символ двоеточия. Пример запроса с измененными именами полей приведен
на рис. 4.12. Изменение имени поля в бланке запроса приводит к изменению заголовка
столбца при просмотре запроса в режиме таблицы. Кроме того, если на основе запроса
создать новый объект, например форму или отчет, в новом объекте будет использовано
новое имя поля. Имя поля базовой таблицы при этом не изменяется. Это имя также
не изменяется в тех формах и отчетах, которые были созданы на основе запроса
до изменения имени поля. Имена полей в запросах должны соответствовать соглашениям
об именах Microsoft Access.
Рис. 4.12.
Изменение названия поля в запросе
Совет
Чтобы использовать новое имя поля только в заголовках столбцов в режиме таблицы или как подпись полей в формах и отчетах, следует задать для этого поля свойство Подпись (Caption), а не переименовывать поле в бланке. (Об установке свойств поля см. разд. "Настройка свойств полей в запросе и свойств самого запроса" гл. 8.)
Ширина столбцов
в бланке запроса также может меняться. Осуществляется это простым перетаскиванием
мышью границы столбца или двойным щелчком мыши по линии границы, как это делается
в таблице Excel.
Замечание
Изменение ширины столбцов в окне Конструктора запросов или в окне расширенного фильтра не влияет на ширину столбцов запроса в режиме Таблицы или объекта, для которого применен фильтр.
В строке Условие отбора (Criteria) и в строке или (Or) указываются условия отбора записей. Такими условиями могут быть логические выражения. Например, (>30), (='Иванов'), (=10) и т. п. (0 создании выражений в условиях запроса см. разд. "Использование выражений" ниже в этой главе.)
Условия, находящиеся
в одной строке, но в разных столбцах бланка, объединяются по логическому оператору
And (И). Если нужно объединить условия отбора по логическому оператору Or (ИЛИ),
разместите эти условия в разных строках бланка запроса. Пример использования
нескольких условий отбора приведен на рис. 4.13.
Рис. 4.13.
Задание критериев отбора записей в запросе
Если критерий
отбора очень сложный, можно вставлять дополнительные строки условий. Для этого
необходимо:
Для удаления
строки условий отбора:
Чтобы установить
порядок сортировки записей в запросе, используйте строку
Сортировка
(Sort).
Для каждого поля, по которому должны сортироваться записи, выберите из списка
соответствующий порядок сортировки:
по возрастанию
(Ascending) или
по
убыванию
(Descending). По умолчанию во всех полях запроса устанавливается
значение
(отсутствует)
(Not sorted). Пример использования поля со списком
Сортировка
(Sort) приведен на рис. 4.14.
Если нужно
отсортировать записи в запросе по нескольким полям, разместите их в бланке запроса
таким образом, чтобы они были упорядочены слева направо — именно в таком порядке
будет выполняться сортировка.
Можно легко
удалить поле из результирующей таблицы запроса, если просто сбросить флажок
Вывод на экран
(Show) в этом столбце бланка запроса. По умолчанию этот
флажок установлен для всех полей запроса. Ситуация, когда поле не должно отображаться
в результате запроса, возникает обычно, когда оно включается в бланк запроса
только для того, чтобы указать условие отбора или сортировки записей. Пример
такого запроса приведен на рис. 4.15. В запрос включены все поля таблицы "Товары"
(Products) (это задано в первом столбце бланка запроса), а поля "КодТипа"
и "Марка" включены только для того, чтобы указать порядок сортировки.
Поэтому флажок
Вывод на экран
(Show) у этих полей сброшен. В противном
случае эти поля вывелись бы дважды.
Рис. 4.14.
Установка порядка сортировки записей в запросе
Рис. 4.15.
Запрос в режиме Конструктора
Если вы хотите
очистить бланк запроса для того, чтобы создать новый, нужно выполнить команду
Правка, Очистить бланк
(Edit, Clear Grid).
После формирования
бланка запроса его можно сохранить, нажав на кнопку
Сохранить
(Save)
на панели инструментов или выполнив команду меню
Файл, Сохранить
(File,
Save). При этом появляется диалоговое окно, в котором нужно ввести имя сохраняемого
запроса (рис. 4.16). Запрос можно сохранить и закрыв его.
Результаты
выполнения запроса можно увидеть, переключившись в режим Таблицы (Datasheet
View) с помощью кнопки
Вид
(View) или нажав кнопку
Запуск
(Run)
на панели инструментов.
Рис. 4.16.
Диалоговое окно
Сохранение
Результат
выполнения запроса, созданного в режиме Конструктора, приведен на рис. 4.17.
Рис. 4.17. Результат выполнения запроса, созданного в режиме Конструктора