БД / Базы данных / Лабораторные работы / Лабораторная №8(Применение_фильтров)
.docЛабораторная работа № 8.
Тема: Фильтрация данных.
В Access предусмотрено такое свойство таблицы, как фильтр.
Фильтр - это специальный механизм,
позволяющий задавать условия на значения атрибутов, в соответствии с которыми формируется некоторое подмножество данных и оно выводится на экран.
Вариантом фильтра может являться, например, такое условие:
"из таблицы Магазины надо получить информацию о магазинах по названию Абрикос".
Формально, это условие можно записать так,
T
ables![Магазины]![Название]
= “Абрикос”
Название столбца ограничивающее условие
Простые условия задаются таким образом.
В соответствии с правилом, программа отберет из всей таблицы, какой бы длинной та ни была, только удовлетворяющие условию строки.
Фильтры строятся на основе задания условий. Как строится простое условие, мы рассмотрели выше. Сложное условие строится путем соединения простых условий логическими операторами.
Логические операторы (And, Or, is, Not, Between и Like) возвращают в качестве результата одно из значений "Истина" (True), "Ложь" (False) или пустое значение (Null), если результат вычислить невозможно. Логические операторы используются для создания сложных условий.
Пример.
(Tables![Магазины]![Название] = “Абрикос”) And (Tables![Магазины]!Адрес Like “*Фрунзе*”)
В условиях мы используем выражения. Во втором условии использован оператор Like
Like – оператор, полезный при поиске образцов в текстовых полях. В образец поиска вы можете включать символы шаблона.
? – задание любого одиночного символа в данной позиции
* - задание любого количества символов в данной позиции
# - указывает, что в данной позиции должна быть цифра
[] - допустимый диапазон заключается в квадратные скобки
символ ! используется для указания исключений [!0-9] – любой символ, за исключением цифр от 0 до 9
Примеры использования Like.
[0-9]- цифра в данной позиции
Like “C*” - строка начинается с “С”
Like “*ова” - строка заканчивается на “ова”
Like “[A-D]*” – строка начинается с одной из букв от A до D
Like “*тр*” - внутри строки есть сочетание букв тр
Like “?[a-k]d[0-9]*” – проверяет наличие произвольного символа в первой позиции, a-k во второй, d в третьей, цифра в четвертой
Выражения могут быть арифметическими, логическими, типа дата – в зависимости, от того операнды какого типа входят в выражение и каков тип результата.
Арифметические выражения используются для вычисления различных величин и содержат, по крайней мере, один оператор (например, арифметические операторы, и т. д.). Чаще всего используются арифметические операторы +, -, * (оператор умножения), / (оператор деления).
Величины, к которым применяется оператор, называются операндами. Различают левый и правый операнд оператора. Например, в выражении 10+12 число 10 является левым операндом оператора сложения, а число 12 правым операндом. В данном случае, выражение является числовым, так как результат этого выражения является числовым типом.
В Access операндами могут быть имена объектов (например, имена полей), имена функций и просто значения (символьные строки, числа, даты).
Существуют операторы, позволяющие сравнивать значения своих операндов. Эти операторы называются операторами сравнения (например, > (знак больше), = (знак равенства) и т. д).
Оператор & используется для слияния (конкатенации) двух строк в одну.
В условиях на значение используются выражения, возвращающие одно из значений "Истина" (данные корректны) или "Ложь" (ошибка в данных). Если данные записи не удовлетворяют условию на значение, то при переходе к другой записи или попытке сохранить изменения, появляется диалоговое окно, сообщающее об этом.
В Access есть еще несколько специальных операторов BETWEEN и IN.
Between – позволяет задавать диапазон значений, например,
IN – позволяет задавать используемый для сравнения список значений:
Примеры.
Between 10 and 20.
IN (“Томск”; “Асино”;”Колпашево”;”Стрежевой”)
Н
а
панели инструментов есть группа
инструментов, использующихся для
фильтрации данных


Первый элемент позволяет вызывать Фильтр по выделенному
Второй элемент позволяет перейти в режим изменения фильтра Фильтр по форме
Третий инструмент действует как переключатель Применить фильтр/Удалить фильтр. На рисунке он не активен (для таблицы нет заданного фильтра)
В Access используется несколько способов фильтрации данных:
-
Фильтр по выделенному
Способ отбора записей в форме, объекте в режиме таблицы или на странице доступа к данным, при котором отбираются только записи, содержащие выделенное значение.
Вызывается из контекстного меню или меню Записи -> Фильтр или кнопка на панели инструментов
-
Фильтр по исключенному
Способ отбора записей в форме, объекте в режиме таблицы или на странице доступа к данным, при котором отбираются, не содержащие выделенное значение.
Вызывается из контекстного меню или меню Записи -> Фильтр
-
Обычный фильтр (иногда называют фильтр по форме).
Способ отбора записей, в котором пользователь использует форму или объект в режиме с пустыми полями, в которые вводятся значения, которые должны содержать отбираемые записи.
Вызывается опцией Изменить фильтр в меню Записи-> Фильтр или кнопка на панели инструментов
-
Фильтр для (Ввод данных для фильтра).
Способ отбора записей, когда вводится значение или выражение, с помощью которого отбираются записи, содержащие значение или удовлетворяющие выражению.
Вызывается из контекстного меню.
-
Расширенный фильтр
Окно, в котором пользователь имеет возможность создать фильтр самостоятельно. В бланке фильтра вводятся условия отбора, с помощью которых из всех записей в открытой форме или таблице выделяется подмножество, удовлетворяющее данным условиям.
Если вы находитесь в режиме задания фильтра (обычный фильтр или расширенный фильтр)
на панели инструментов появляются следующие кнопки:
![]()
Выбор между типами фильтров:
-
Если удается легко найти и выделить значение, которое должны содержать отбираемые записи, следует использовать фильтр по выделенному.
-
Фильтр по форме (обычный фильтр) используется для выбора искомых значений из списка без просмотра всех записей или при указании нескольких условий отбора одновременно.
-
Поле «Фильтр для» используется, если фокус ввода находится в поле и нужно ввести конкретное искомое значение или выражение, результат которого будет использоваться в качестве условия отбора.
Для создания сложных фильтров следует использовать окно расширенного фильтра:
-
Поиск записей, удовлетворяющих нескольким условиям.
-
Поиск записей, удовлетворяющих хотя бы одному из условий.
-
Ввод выражений в качестве условий.
Примечание. После определения обычного фильтра, фильтра по выделенному фрагменту или через поле «Фильтр для», переход в окно расширенного фильтра позволяет увидеть, как указанные значения преобразуются в выражение в условиях отбора в бланке запроса.
Если таблица закрывается при условии действия фильтра, фильтр записывается в свойства таблицы и при повторном открытии можно выполнить операцию “Применить фильтр”.
Задать следующие фильтры:
Используя фильтр по выделенному:
-
Найти магазины по названию “Копеечка”
-
Найти магазины, у которых название начинается на “Ю”;
-
Найти все магазины “Кировского района”;
-
Найти все магазины, фамилия директора у которого Рубцов.
Режим ФИЛЬТР ПО ВЫДЕЛЕННОМУ. Немедленно отфильтрует записи, сравнивая их с содержимым того поля, в котором находился маркер ввода, то есть мигающая вертикальная черта, обозначающая место, в которое будет вставляться информация с клавиатуры. По окончанию процесса (зависящего от скорости конкретного компьютера и размеров таблицы) таблица переменит свой внешний вид, и, вместо всех записей, в ней останутся лишь итоги фильтрации. Полученный результат является лишь экранным, то есть на самом деле ни одной строки из таблицы никуда не пропало, и обладает всеми свойствами полноценной самостоятельной таблицы. Его можно продолжать фильтровать и сортировать уже по другому критерию.
Когда нужда в отфильтрованных данных отпала, таблице можно вернуть ее начальный вид. Для этого достаточно опять поместить маркер ввода в любую ячейку и в меню, выводимом правой клавишей мыши, выбрать режим УДАЛИТЬ ФИЛЬТР. Все вернется на свои места.
Используя фильтр по исключенному:
-
Найти все продукты, тип которых не Мюсли.
-
Найти все магазины, которые не располагаются в Кировском районе
Используя фильтр Для
-
Определить все продукты, у которых калории превышают 300
Каким образом при помощи фильтра можно отобрать записи, соответствующие условию не строго, например, те, в которых калории превышают 300?
Действительно, обычный фильтр с подобной постановкой вопроса не справится, так как он оперирует строгим равенством. Однако на этот случай существует фильтр, который называется ФИЛЬТР ДЛЯ. В контекстно-зависимом меню непосредственно с названием этого фильтра расположено белое поле ввода того параметра, для которого, собственно, фильтр и будет применяться.
Для его применения, следует "попасть" маркером ввода в любую из ячеек интересующего вас столбца. Так как заданный вопрос касается калорий, то в данном примере маркер ввода размещается в любой ячейке столбца "Калории". Открыв контекстно-зависимое меню и выбрав режим ФИЛЬТР ДЛЯ, вам понадобится ввести в этом самом белом поле, которое расположено справа, интересующее вас условие. Для нашего примера это комбинация символов ">300". Как только вы закончите и нажмете на клавиатуре кнопку " ВВОД", фильтрация выполнится.
Используя обычный фильтр определить
-
Найти магазины в Советском районе фамилия директоров, у которых начинается на “П”
-
Найти все магазины, расположенные на улице Фрунзе или на Учебной с фамилией директора на букву А
-
Найдите магазины, у которых телефон начинается на 24 и заканчивается на 0.
Используя расширенный фильтр найти
-
Продукты, у которых белки > 10 и жиры > 10 и углеводы < 40
-
Н
айдите
ПродуктыЗаказы, в которых
Количество = 100 и процент скидки = 3
На панели инструментов есть три инструмента (под номером 5), которые позволяют оперировать с фильтрами (фильтр по выделенному, изменить, применить фильтр или удалить фильтр).
