Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lec_055_MA.doc
Скачиваний:
1
Добавлен:
23.11.2019
Размер:
141.82 Кб
Скачать

8

Лекция 55 по МА Фильтры

Запросы на выборку и фильтры являются основным инструментом извлечения данных из таблиц БД. По своему назначению фильтр и запрос на выборку (далее просто запрос) достаточно близки – оба предназначены для сортировки и отбора данных.

Фильтр отличается от запроса тем, что не сохраняется в БД и неотделим от объекта, для которого создан. Таким образом, запрос можно считать фильтром, который специально сохраняется отдельно от таблицы для дальнейшего использования в других таблицах и в запросах. Вторым важным отличием запроса от фильтра является возможность строить на его основе отчеты и формы, а также выполнять достаточно сложные вычисления.

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

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

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

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

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

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

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

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

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

Примечание. При создании запроса иногда удобно создать обычный фильтр, фильтр по выделенному или ввести данные в поле «Фильтр для» с последующим сохранением фильтра как запроса. Это позволяет обойтись без работы с бланком запроса (кроме ситуаций, когда в запрос необходимо внести дополнительные изменения). Даже в этом случае при открытии запроса в режиме конструктора Microsoft Access заполняет бланк с помощью данных, полученных из фильтра. Такой бланк может стать основой для дальнейшей работы с запросом.

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

Характеристики

Фильтры

Запросы

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

Нет

Да

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

Нет

Да

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

Нет

Да

Используется только с закрытой таблицей, запросом или формой

Нет

Да

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

Да

Да

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

Нет

Да

Позволяет сортировать записи.

Да

Да

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

Да

Да (в зависимости от типа запроса). Громоздкие изменения обычно выполняются с помощью запроса на обновление записей..

Создание фильтра быстрое (контекстное меню)

Используется для быстрого отбора нужных записей.

  1. В окне БД выберите таблицу или запрос и нажмите кнопку Открыть (Open) на панели инструментов окна БД.

  2. Выберите поле записи, к которому нужно применить фильтр, и щелкните по нему правой клавишей мыши.

  3. В контекстном меню выберите команду Фильтр для (Filter for) и в текстовое поле этой команды введите условие отбора(Дата и время, Другое поле, Пустое поле, Текст, Число).

  4. Нажмите клавишу Enter.

Совет: Посредством контекстного меню фильтр можно последовательно применить к разным полям.

Совет: Чтобы отменить фильтрацию, щелкните правой кнопкой мыши по полю и в контекстном меню выберите команду Удалить фильтр (Remove Filter/Sort) или отожмите кнопку Удалить фильтр (Remove Filter) на панели инструментов Access, которая после этого снова превратится в кнопку Применение фильтра (Apply Filter).

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

Выполняемые действия

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

Обычный фильтр и поле «Фильтр для»

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

Поиск записей, удовлетворяющих нескольким условиям.

Да (условия отбора следует задавать поочередно).

Да (условия отбора можно задать одновременно).

Да (условия отбора можно задать одновременно).

Поиск записей, удовлетворяющих хотя бы одному из условий.

Нет

Да

Да

Указание условия отбора с помощью выражения.

Нет

Да

Да

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

Нет (однако, после применения фильтра

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

Нет (однако, после применения фильтра

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

Да (допускается сортировка части полей по возрастанию, а других полей по убыванию).

Создание фильтра в таблице, запросе или форме

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

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

Примечание. В отчетах нельзя создавать фильтр с помощью вышеперечисленных методов. Однако отчет (как и форма) может наследовать фильтр.

Влияние фильтра и порядка сортировки таблицы или запроса на новые формы или отчеты

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

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

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

Использование фильтра по выделенному фрагменту.

Отбор записей с помощью значений, выбираемых в форме, подчиненной форме или в объекте в режиме таблицы

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

2 Выберите это значение и нажмите кнопку Фильтр по выделенному на панели инструментов. Способ выбора значения определяет, какие записи будут отобраны фильтром.

Влияние способа выбора значений для фильтра на результирующий набор записей

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

Выбор

Поиск записей

Пример

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

Все содержимое данного поля должно совпадать с выбранным значению.

В поле «Город» выбрано значение «Берлин». Фильтр возвращает все записи, у которых в поле города содержится значение «Берлин».

Часть значения, начиная с первого символа в поле.

Значение данного поля должно начинаться с выбранных символов.

В поле «Название», содержащем значение «Прима», выделены символы «При». Фильтр отбирает все записи, содержащие в поле «Название» значения, которые начинаются с «При» (например, «Привет» и «Прибой»).

Часть значения, начиная не с первого символа в поле.

Все значение данного поля или его часть содержат выбранные символы.

В поле «Название», содержащем значение «Прима», выделены символы «рим». Фильтр отбираются все записи, содержащие «рим» в любом месте поля «Название» (например, «Рим», «Римма» и «Буриме»).

Повторяйте шаг 2, пока не будут заданы все условия отбора записей.

Примечания

· Фильтры сохраняются автоматически при сохранении таблицы или формы. Таким образом, при повторном открытии таблицы или формы можно снова применить сохра­ненный фильтр.

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

· Фильтр позволяет отбирать записи, не содержащие выбранного значения. Выберите значение, нажмите правую кнопку мыши и выберите команду Исключить выделенное.

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

Примечания

· Фильтры сохраняются автоматически при сохранении таблицы или формы. Таким образом, при повторном открытии таблицы или формы можно снова применить сохраненный фильтр.

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

Примеры выражений условий отбора для запросов или фильтров

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

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

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

Поле

Выражение

Описание

ПунктНазначения

"Киев"

Отображает заказы на доставку товаров в Киев.

ПунктНазначения

"Киев" Or "Минск"

Использует оператор Or для отображения заказов на доставку товаров в Киев или Минск.

ДатаОтгрузки

Between #05.01.95# And #10.01.95#

Использует оператор Between...And для отображения заказов на отгрузку товаров не ранее 5-янв-95 и не позднее 10-янв-95.

ДатаОтгрузки

#02.02.95#

Отображает заказы на отгрузку товаров 2-фев-95.

СтранаДоставки

In("Канада", "Великобритания")

Использует оператор In для отображения заказов на доставку товаров в Канаду или Великобританию.

СтранаДоставки

Not "США"

Использует оператор Not для отображения заказов на доставку товаров во все страны, за исключением США.

ИмяПолучателя

Like "С*"

Заказы на доставку товаров клиентам, имена которых начинаются с буквы С.

Название

>="Н"

Отображает заказы на доставку товаров в фирмы, названия которых начинаются с букв, находящихся в диапазоне от Н до Я.

КодЗаказа

Right([КодЗаказа], 2)

="99"

Использует функцию Right для отображения заказов, код которых заканчивается на 99.

Название

Len([Название])

>Val(30)

Использует функции Len и Val для отображения заказов для фирм, названия которых состоят из более чем 30 символов.

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

Поле

Выражение

Описание

ДатаИсполнения

Between Date( ) And DateAdd("m", 3, Date( ))

Использует оператор Between...And и функции DateAdd и Date для отображения заказов, требующих исполнения в течение трех месяцев, начиная с сегодняшней даты включительно.

ДатаЗаказа

< Date( )- 30

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

ДатаЗаказа

Year([ДатаЗаказа])=1996

Использует функцию Year для отображения заказов, сделанных в 1996 году.

ДатаЗаказа

DatePart("q", [ДатаЗаказа])=4

Использует функцию DatePart для отображения заказов на четвертый квартал.

ДатаЗаказа

DateSerial(Year

([ДатаЗаказа]),

Month([ДатаЗаказа])+1, 1)-1

Использует функции DateSerial, Year и Month для отображения заказов на последний день каждого месяца.

ДатаЗаказа

Year([ДатаЗаказа])=

Year(Now()) And Month([ДатаЗаказа])=

Month(Now())

Использует функции Year и Month, а также оператор And для отображения заказов текущего года и месяца.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]