Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы в Acees.rtf
Скачиваний:
26
Добавлен:
31.08.2019
Размер:
3.36 Mб
Скачать

Цель работы – выбор из бд группы данных.

Общие сведения

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

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

После установки фильтра создается полное впечатление, что в БД остались только записи, удовлетворяющие заданному условию.

Существует насколько способов фильтрации.

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

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

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

Если выделить два элемента данных с различными районами, то будут выбраны записи, имеющие любой из выбранных районов.

Наконец, если выделить блок из нескольких строк и нескольких столбцов, то каждая строка этого блока будет представлять собой образец для фильтра. Например, если в первой строке блока выделена фамилия Иванов и должность Директор, а во второй – фамилия Петров и должность Бухгалтер, то фильтр выведет только директоров Ивановых и бухгалтеров Петровых, но не директоров Петровых и не бухгалтеров Ивановых.

Порядок следования полей

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

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

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

Более сложный фильтр можно создать при помощи Конструктора фильтров. Он вызывается через меню à Записи à Фильтр à Расширенный фильтр.

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

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

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

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

Поле:

Должность

Сортировка:

Условие отбора:

Директор

или:

Бухгалтер

Или здесь является логической операцией, связывающей два простых условия:

([Должность] = "Директор") Or ([Должность] = "Бухгалтер") .

В этой записи, выполненной в стандарте Access:

круглые скобки задают порядок вычислений, как в обычной арифметической формуле;

квадратные скобки определяют, что Должность является именем поля;

кавычки обозначают текстовую константу – образец для поиска;

Or – логическая операция или.

Результат этой формулы будет равен Истине (True), если выполняется хотя бы одно из простых условий в скобках. В противном случае результат имеет значение Ложь (False).

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

Существует еще одна логическая операция – и.

Пусть требуется вывести не просто директоров, а директоров по фамилии Иванов. Задание для поиска будет иметь вид

Поле:

Должность

ФИО

Сортировка:

Условие отбора:

Директор

Иванов

Для отбора проверяется истинность следующего выражения:

([Должность] = "Директор") And ([ФИО] = "Иванов") .

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

Наконец, для выбора директоров Ивановых и бухгалтеров Петровых следует задать условие как

Поле:

Должность

ФИО

Сортировка:

Условие отбора:

Директор

Иванов

или:

Бухгалтер

Петров

Формула для проверки условия отбора будет иметь вид

(([Должность] = "Директор") And ([ФИО] = "Иванов")) Or

(([Должность] = "Бухгалтер") And ([ФИО] = "Петров")) .

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

Например, для вывода сведений о сотрудниках, родившихся после 31 декабря 1977, но до 1 января 1979 года, то есть в 1978 году, задается фильтр

Поле:

ДатаРожд

ДатаРожд

Сортировка:

Условие отбора:

> 31.12.77

<01.01.79

При вводе данных текст в Условии отбора изменяется: даты заключаются в символы #. Это означает, что Access узнала во введенных символах дату и считает 31.12.77 константой типа дата/время.

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

Если Вы снова откроете окно создания расширенного фильтра, то он автоматически изменится:

Поле:

ДатаРожд

Сортировка:

Условие отбора:

>#31.12.77# And <#01.01.79#

Внимание! Когда вводят условия, часто забывают о кавычках. Access пытается сама определить, что было введено: образец данных, который следует считать константой и выделять кавычками, или имя поля. К сожалению, она часто ошибается. Если появится ошибка, установите вручную: