Похожие публикации

Договор теплоснабжения ОАО 2тгк №1
Документ
Договор на ведение регистрационного учета граждан по месту постоянного жительства и временного пребывания Отделом вселения и регистрационного учета СП...полностью>>

Регламент на проведение работ по защите лакокрасочными материалами железобетонных пролетных строений моста им. Александра Невского, г. Санкт-Петербург
Регламент
Технологический регламент распространяется на окрашивание железобетонных конструкций моста им. Александра Невского, г.Санкт-Петербург материалами фирм...полностью>>

Комитет по здравоохранению (13)
Документ
На основании Федерального закона от 04.05.2011 № 99-ФЗ «О лицензировании отдельных видов деятельности», Положения о лицензировании деятельности по обо...полностью>>

Инструкция по подключению торн 33. 3702-32 ( -31,- 33). Предупреждение!
Инструкция
Предупреждение! После прочтения данной инструкции оцените свои возможности по ее реализации и, в случае сомнений, обратитесь за помощью к автоэлектрик...полностью>>



Отбор и сортировка записей с помощью запросов

  1. Отбор и сортировка записей с помощью запросов

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

Создание запросов с помощью Мастера и с помощью Конструктора запросов

Особенности выполнения запросов и их изменение

Использование вычисляемых полей в запросе

Преобразование фильтра в запрос

Виды соединений таблиц в запросе

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

Способы вывода результатов запроса на печать

Передача результатов запросов в другие приложения

Использование выражений в запросах

Описание других типов запросов приводится в главе 8 - Редактирование и анализ данных с помощью запросов.

  1. Запросы и фильтры

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

Основные отличия запросов и фильтров заключаются в следующем.

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

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

Фильтры не могут быть сохранены как отдельный объект в окне базы данных (они сохраняются только в виде запроса).

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

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

для просмотра подмножества записей таблицы без предварительного открытия этой таблицы или формы;

для того чтобы объединить в виде одной таблицы на экране данные из нескольких таблиц;

для просмотра отдельных полей таблицы;

для выполнения вычислений над значениями полей.

  1. Создание простого запроса с помощью Мастера запросов

Наиболее просто создается запрос при помощи Мастера запросов. Чтобы создать простой запрос с помощью Мастера запросов, необходимо:

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

В списке запросов дважды щелкнуть левой кнопкой мыши на ярлыке Создание запроса с помощью мастера (Create query by using wizard) или нажать на кнопку Создать (New) в окне базы данных и в появившемся диалоговом окне Новый запрос (New Query) выбрать Простой запрос (Simple Query Wizard) и нажать на кнопку ОК (рис. 4.1).

В появившемся окне Создание простых запросов (Simple Query Wizard) (рис. 4.2) в поле со списком Таблицы и запросы (Tables/Queries) выбрать таблицу или запрос, которые будут служить источником данных для создаваемого запроса.

С помощью стрелок вправо и влево переместить из списка Доступные поля (Available Fields) в список Выбранные поля (Selected Fields) те поля, которые необходимы в конструируемом запросе. При этом порядок полей в запросе будет соответствовать порядку полей в списке Выбранные поля (Selected Fields). Если нужно включить в запрос все поля, можно воспользоваться кнопкой с двумя стрелками вправо.

Рис. 4.1. Окно создания нового запроса

Рис. 4.2. Первое диалоговое окно Мастера простых запросов

Нажать кнопку Далее (Next).

Следующее диалоговое окно будет последним. В нем нужно ввести имя создаваемого запроса (рис. 4.3) в поле Задайте имя запроса (What title do you want to your query?) и выбрать дальнейшие действия: Открыть запрос для просмотра данных (Open the query to view information) или Изменить макет запроса (Modify the query design).

При необходимости можно установить флажок Вывести справку по работе с запросом? (Display Help on working with the query) для вывода справочной информации по работе с запросами.

Нажать на кнопку Готово (Finish).

Рис. 4.3. Окно Мастера простых запросов на втором шаге

По окончании работы Мастера простых запросов в зависимости от выбора способа дальнейшей работы с запросом откроется или окно запроса в режиме просмотра (рис. 4.4), или окно Конструктора запросов, в котором можно модифицировать запрос. В качестве примера построения простого запроса с помощью Мастера простых запросов рассматривается создание запроса, содержащего имена, фамилии, адреса и телефоны сотрудников фирмы "Борей" (Northwind) (в качестве исходных данных взяты таблицы демонстрационной базы данных "Борей"). Этот запрос строится на основе таблицы "Сотрудники" (Employees). На первом шаге Мастера простых запросов была выбрана исходная таблица "Сотрудники" (Employees) в поле со списком Таблицы и запросы (Tables/Queries) и в список Выбранные поля (Selected Fields) были перенесены следующие поля: "Имя" (First Name), "Фамилия" (Last Name), "Адрес" (Address), "Домашний телефон" (Home Phone). На втором шаге Мастера простых запросов в поле названия запроса было введено имя "Сотрудники Запрос" и выбран способ дальнейшего отображения запроса: просмотр информации. Результатом работы Мастера запросов стал запрос "Сотрудники Запрос", изображенный на рис. 4.4.

Рис. 4.4. Окно запроса в режиме просмотра

  1. Создание и изменение запроса с помощью Конструктора запросов

Для изменения уже существующих запросов и для создания новых запросов используется Конструктор запросов. Для того чтобы открыть запрос в режиме Конструктора, выделите в списке один из существующих запросов, например только что созданный запрос "Сотрудники Запрос", и нажмите кнопку Конструктор (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)

Правка, Вырезать (Edit, Cut)

Удаление выделенных объектов из запроса в буфер обмена Windows

Копировать (Сору)

Правка, Копировать (Edit, Copy)

Копирование выделенных объектов запроса в буфер обмена

Вставить (Paste)

Правка, Вставить (Edit, Paste)

Вставка содержимого буфера обмена в запрос

Формат по образцу (Format Painter)

Копирование параметров форматирования из одного выделенного объекта в другой такого же типа

Отменить (Undo)

Правка, Отменить (Edit, Undo)

Отмена последнего изменения запроса

Тип запроса (Query Туре)

Запрос, Выборка (Query, Select Query)

Изменение типа запроса. Для изменения типа запроса щелкните по стрелке справа от кнопки и выберите из списка нужный тип запроса

Запуск (Run)

Запрос, Запуск (Query, Run)

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

Отобразить таблицу (Show Table)

Запрос, Добавить таблицу (Query, Show Table)

Выводится диалоговое окно Добавление таблицы (Show Table)

Групповые операции (Totals)

Вид, Групповые операции (View, Totals)

Группировка записей в запросе и расчет итоговых значений

Набор значений (Top Values)

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

Свойства (Properties)

Вид, Свойства (View, Properties)

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

Построитель (Build)

Вызов построителя для создания выражения. Кнопка доступна только тогда, когда активизировано свойство запроса или поля запроса, которое допускает ввод выражения, например Условие отбора (Criteria)

Окно базы данных (Database Window)

Окно, 1 (Window, 1)

Отображение окна базы данных

Новый объект (New Object)

Создание нового объекта базы данных. Чтобы выбрать тип создаваемого объекта, нажмите стрелку справа от кнопки

Справка по Microsoft Access (Microsoft Access Help)

Справка, Справка по Microsoft Access (Help, Microsoft Access Help)

Вызов помощника и получение справки по Access 2002

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

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

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

В списке запросов выбрать ярлык Создание запроса в режиме конструктора (Create query in Design view) или нажать кнопку Создать (New), в появившемся окне Новый запрос (New Query) выбрать Конструктор (Design view) и нажать на кнопку ОК.

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

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

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

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

Внимание

Иногда Конструктор устанавливает лишние связи, основываясь только на именах и типах полей. Это может привести к некорректным результатам запроса, поэтому нужно обязательно проверять, как отображаются связи между таблицами в окне Конструктора запросов, и удалить вручную лишние связи. Для этого выделите лишнюю связь, щелкнув по ней левой кнопкой мыши, и нажмите клавишу . Работа со связями в окне Конструктора запросов выполняется точно так же, как в окне Схема данных (Relationship) (см. разд. "Связывание таблиц на схеме данных"гл. 2).

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

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

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

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

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

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