Обработка данных (фильтр, поиск, запросы)
Запрос на выборку содержит условия отбора данных и возвращает выборку, соответствующую указанным условиям, без изменения возвращаемых данных. В Microsoft Access существует также понятие Фильтра, который, в свою очередь, является набором условий, позволяющих отбирать подмножество записей или сортировать их. Сходство между запросами на выборку и фильтрами заключается в том, что и в тех и в других производится извлечение подмножества записей из базовой таблицы или запроса. Однако между ними существуют различия, которые нужно понимать, чтобы правильно сделать выбор, в каком случае использовать запрос, а в каком — фильтр.
Основные отличия запросов и фильтров заключаются в следующем:
• Фильтры не позволяют в одной строке отображать данные из нескольких таблиц, т. е. объединять таблицы.
• Фильтры не дают возможности указывать поля, которые должны отображаться в результирующем наборе записей, они всегда отображают все поля базовой таблицы.
• Фильтры не могут быть сохранены как отдельный объект в окне базы данных (они сохраняются только в виде запроса).
• Фильтры не позволяют вычислять суммы, средние значения, подсчитывать количество записей и находить другие итоговые значения.
Создание простого запроса с помощью «Мастера запросов»
Для создания запроса с помощью Мастера запросов необходимо:
• На панели объектов выбрать Создание → Запросы→ Мастер запросов.
• В появившемся диалоговом окне Новый запрос выбрать Простой запрос и нажать на кнопку ОК.
• В появившемся окне Создание простых запросов в поле со списком Таблицы и запросы выбрать таблицу или запрос, которые будут служить источником данных для создаваемого запроса.
• С помощью стрелок вправо и влево переместить из списка в список Выбранные поля те поля, которые необходимы в конструируемом запросе. При этом порядок полей в запросе будет соответствовать порядку полей в списке Выбранные поля. Если нужно включить в запрос все поля, можно воспользоваться кнопкой с двумя стрелками вправо. Нажать кнопку Далее.
• Следующее диалоговое окно будет последним. В нем нужно ввести имя создаваемого запроса в поле Задайте имя запроса и выбрать дальнейшие действия: Открыть запрос для просмотра данных или Изменить макет запроса.
• При необходимости можно установить флажок Вывести справку по работе с запросом? для вывода справочной информации по работе с запросами.
• Нажать на кнопку Готово.
Создание и изменение запроса с помощью «Конструктора запросов»
• На панели объектов выбрать Создание → Запросы→ Конструктор запросов.
• В окне Добавление таблицы выбрать одну или несколько таблиц или запросов для построения нового запроса и нажать кнопку Добавить. После добавления всех необходимых таблиц нажать кнопку Закрыть в окне Добавление таблицы. Все выбранные таблицы оказываются помещенными на верхней панели окна Конструктора запросов. Если таблицы связаны между собой, т. е. связи присутствуют явно на схеме данных, то эти связи также отображаются. Если связи на схеме данных не установлены, то Конструктор запросов автоматически устанавливает связи между таблицами, если они содержат поля, которые имеют одинаковые имена и согласованные типы.
• Затем нужно указать, какие поля из базовых таблиц будут отображаться в запросе. Включать в запрос можно поля из любой таблицы. Чтобы добавить в запрос еще одну таблицу или другой запрос, необходимо:
• Нажать кнопку Добавить таблицу на панели инструментов или выполнить команду меню Запрос, Добавить таблицу.
• В окне Добавление таблицы выбрать вкладку, содержащую требуемые объекты.
• Выбрать имя объекта, добавляемого в запрос.
• Нажать кнопку Добавить, а затем кнопку Закрыть.
Чтобы удалить базовую таблицу из запроса, необходимо выделить ее, щелкнув на любом месте в списке ее полей, и нажать клавишу [Delete].
Чтобы удалить поле из запроса, выделите нужный столбец в бланке запроса, а затем нажмите клавишу [Delete].
Запросы с параметрами
Запросы с параметрами позволяют многократно выполнить один и тот же запрос с различными значениями в условиях отбора. При выполнении такого запроса выдается диалоговое окно Введите значение параметра, в котором пользователь может ввести конкретное значение и затем получить нужный результат.
1. Создайте запрос в режиме Конструктора.
2. Чтобы определить параметр запроса, введите в строку Условие отбора слово или фразу, заключенную в квадратные скобки. Эта фраза будет выдаваться в виде приглашения в диалоговом окне при выполнении запроса.
3. Нажмите кнопку Запуск на панели инструментов, чтобы выполнить запрос. При выполнении запроса появляется диалоговое окно Введите значение параметра, в которое нужно ввести значение.
В одном запросе можно ввести несколько параметров. При выполнении такого запроса для каждого из параметров будут поочередно выводиться диалоговые окна Введите значение параметра в том порядке, в котором параметры перечислены в бланке запроса.
Создание запроса из фильтра
Еще одним способом создания запроса является сохранение фильтра в виде запроса. Для этого:
1. Откройте таблицу в режиме Таблицы.
2. Нажмите кнопку Изменить фильтр на панели инструментов. Появится окно, в котором можно задать фильтр.
3. Выберите из списка в поле любое значение.
4. Проверьте, как работает фильтр, нажав кнопку Применение фильтра на панели инструментов. Убедившись, что фильтр работает правильно, вы можете сохранить его для дальнейшего использования.
5. Нажмите кнопку Изменить фильтр на панели инструментов еще раз, чтобы вернуться в окно определения фильтра.
6. Нажмите кнопку Сохранить как запрос на панели инструментов или выполните команду Файл, Сохранить как запрос. Появится диалоговое окно, в котором необходимо указать имя запроса и нажать кнопку ОК.
7. Снимите фильтр, нажав кнопку Удалить фильтр.
В виде запроса можно также сохранить так называемый Расширенный фильтр. Расширенный фильтр используется в том случае, если требуется задать сложные критерии отбора и сортировки записей. Чтобы создать расширенный фильтр для открытой таблицы, необходимо выполнить команду Записи, Фильтр, Расширенный фильтр. При этом появляется окно расширенного фильтра, которое очень напоминает окно Конструктора запроса, однако панель инструментов очень сильно отличается от панели инструментов Конструктора запросов. Например, нельзя добавить еще одну таблицу (расширенный фильтр строится только для одной таблицы) или выполнить группировку записей. На панели инструментов есть только две важные кнопки: Применение фильтра и Сохранить как запрос. В бланке фильтра отсутствует строка, содержащая флажки включения поля в запрос. Это означает, что фильтр не влияет на состав столбцов в результирующей таблице — всегда отображаются все столбцы, фильтруются только записи. Однако критерии отбора записей могут быть установлены сколь угодно сложные. Задаются они по тем же правилам, что и в запросах.