Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Access.doc
Скачиваний:
37
Добавлен:
05.11.2018
Размер:
1.48 Mб
Скачать

Лекция № 3 Создание сложных запросов. Фильтры

Запросы с параметрами

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

Создание вычислительных полей в запросе

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

Создание таблиц из запроса

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

Чтобы изменения данных в запросе не затронули исходные таблицы, из запроса нужно создать новую таблицу.

  1. Создайте запрос на выборку или откройте запрос в окне Конструктора.

  2. Выберите в меню Запрос команду Создание таблицы

  3. Введите имя новой таблицы и щелкните на кнопке ОК.

  4. На панели инструментов щелкните на кнопке Запуск.

  5. В ответ на предложение создать таблицу щелкните на кнопке Да. (Если таблица с таким именем уже существует, будет выдан запрос о ее удалении. Щелкните на кнопке ОК.)

Создание итоговых запросов

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

В режиме конструктора

В окне базы данных щелкните на кнопке Запросы

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

На панели инструментов Конструктор запросов щелкните на кнопке Групповые операции . В бланке запроса после строки Имя таблицы появится строка Групповые операции. В первом столбце задайте имя поля по которому необходимо провести группировку данных. В остальных столбцах задайте имена полей по которым необходимо вычислить итоговые функции.

Для каждого поля выберите одну из функций в раскрывающемся списке строки Групповая операция: Avg (среднее значение), Min (наименьшее значение), Max (наибольшее значение), Count (число значений поля без учета пустых значений), StDev (среднестатистическое отклонение), Var (дисперсия значений), First (первое значение), Last (последнее значение).

С помощью Мастера простых запросов

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

Установите переключатель Итоговый и щелкните на кнопке Итоги.

В диалоговом окне Итоги выберите одну из функций для каждого поля. Щелкните на кнопке ОК, а затем на кнопке Далее.

Введите имя запроса и щелкните на кнопке Готово.

Поиск повторяющихся записей

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

  1. Щелкнуть на кнопке Запросы в окне базы данных.

  2. Щелкнуть на кнопке Создать.

  3. В диалоговом окне Новый запрос щелкните дважды на строке Повторяющиеся записи. Этим действием Вы запускаете мастер.

  4. Выделите таблицу Сотрудники и щелкните на кнопке Далее.

  5. Переместите в список Поля с повторами поле Страна из списка Доступные поля. Щелкните на кнопке Далее.

  6. Добавьте в список Дополнительные поля любые другие поля, которые Вы хотели бы видеть в запросе. Щелкните на кнопке Далее.

  7. Измените, если требуется, имя запроса и щелкните на кнопке Готово.

Поиск записей без подчиненных

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

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

  2. Щелкните на кнопке Создать.

  3. В диалоговом окне Новый запрос щелкните дважды на строке Записи без подчиненных.

  4. Выделите таблицу Страны и щелкните на кнопке Далее.

  5. Выделите таблицу Города и щелкните на кнопке Далее.

  6. Щелкните на поле Страна в обоих списках, если это поле в обоих списках уже не выделено, затем щелкните на кнопке . Щелкните на кнопке Далее.

  7. Переместите в список Выбранные поля все поля таблицы Страны, которые необходимо отразить в запросе. Щелкните на кнопке Далее.

  8. Измените, если требуется, имя запроса и щелкните на кнопке Готово.

Запросы на изменение

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

Глобальный поиск и замена

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

В списке полей выберите поле, значения которого нужно обновить, и перенесите его в бланк запроса.

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

Удаление записей по заданному условию

Откройте окно конструктора запроса и добавьте в него нужную таблицу.

Выполните команду ЗапросУдаление.

Вместо строки Сортировка в бланке запроса появится строка Удаление.

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

Поиск данных с помощью фильтров

Фильтр следует использовать, если из набора записей, которые Вы в текущий момент просматриваете в таблице или форме, необходимо оперативно сделать выборку в соответствии с определенными критериями

Отличие фильтра от запроса

Сравнение свойств фильтра и запроса

Свойство

Фильтр

Запрос

Изменение набора отображаемых записей непосредственно в режиме формы или в режиме таблицы

Да

Нет

Сохранение полученного набора данных в качестве отдельного объекта базы данных

Нет

Да

Создание формы или отчета на основе выбранных записей

Нет

Да

Выбор полей для отображения

Нет

Да

Включение в отображение полей из связанных таблиц

Нет

Да

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

  • Изменить фильтр

  • Фильтр по выделенному

  • Исключить выделенное

  • Расширенный фильтр

Эти команды используются для создания фильтра.

Фильтр по выделенному

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

Команда Исключить выделение

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

Команда Изменить фильтр

Кнопка Изменить фильтр – еще одно средство отбора записей, но уже по одному или нескольким полям. Данное средство дает Вам возможность выбрать критерий отбора в раскрывающемся списке, содержащем все значения поля.

  1. В режиме таблицы или формы щелкните на кнопке Изменить фильтр панели инструментов Таблица в режиме таблицы или Режим формы. Окно приобретет следующий вид:

  2. Если до этого фильтр уже был применен, то в окне фильтра Вы увидите параметры текущего фильтра. Удалите лишние параметры (те условия, которые не нужны в новом фильтре).

  3. Щелкните в поле применения фильтра, чтобы просмотреть раскрывающийся список значений поля.

  4. Выберите требуемое значение поля в списке.

  5. Щелкните на кнопке Применить фильтр на панели инструментов Фильтр, которая появляется на экране при открытом окне фильтра.

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

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

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

Составление расширенного фильтра

Возможности расширенного фильтра позволяют свободно объединять в разных полях разные условия фильтрации. Вы также вправе воспользоваться средством сортировки выбранных с помощью фильтра записей или задать сортировку по нескольким полям.

Открытие окна расширенного фильтра

Для создания расширенного фильтра сначала необходимо открыть окно фильтра.

  1. Откройте таблицу или форму, в которой требуются отсортировать записи (соответственно, в режиме таблицы или формы).

  2. Выберите команду ЗаписиФильтрРасширенный фильтр

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

Очистка бланка фильтра

Чтобы удалить из бланка фильтра старые условия, щелкните на кнопке Очистить бланк на панели инструментов Фильтр. Список полей в верхней части окна останется неизменным, но любые условия из бланка исчезнут.

Ввод условий фильтрации

При вводе условия в окне фильтра сначала в бланк в нижней половине окна вводится имя поля. Это можно сделать несколькими способами:

  • дважды щелкнуть на имени поля в списке полей в верхней части окна;

  • ввести имя поля в строке Поле на бланке фильтра;

  • перетащить имя поля из списка полей в верхней части окна;

  • выбрать имя поля в раскрывающемся списке строки Поле.

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

Применение, удаление и сохранение фильтра

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

Применение фильтра

Как видно из предыдущих примеров, для применения фильтра необходимо щелкнуть на кнопке Применить фильтр. Access применит созданный фильтр в окне фильтра. Если же Вы открываете саму форму или таблицу, задействуется фильтр, который был применен в последний раз.

Удаление фильтра

Чтобы удалить фильтр, необходимо щелкнуть на кнопке Удалить фильтр, в которую превращается кнопка Применить фильтр после применения фильтра (кнопка остается нажатой).

Сохранение фильтра

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

Сохранение фильтра в режиме таблицы

Если при закрытии окна таблицы в режиме таблицы Вы сохраните изменения, то Access «запомнит» тот фильтр, который был применен последним. При очередном открытии той же таблицы можно щелкнуть на кнопке Применить фильтр, и будет применен фильтр, который Вы использовали последним. Таким образом, не возникает необходимости создавать фильтр заново.

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