Фильтр - это набор условий, применяемых для отбора подмножества записей. В Access существуют фильтры четырёх типов: 1) по выделенному фрагменту, 2) обычный, 3) расширенный и 4) по вводу.
Фильтр по выделенному фрагменту - это способ быстрого отбора записей по выделенному образцу.
Например, нужно просмотреть в таблице записи только о конкретном абоненте. Для этого выделяют фамилию абонента в таблице "Телефон" (становятся в любую ячейку таблицы с его фамилией), нажимают правую клавишу мыши и щёлкают по кнопке "Фильтр по выделенному". Access выбирает записи, для которых значение в соответствующем столбце (например, "Фамилия") равно тексту, соответствующему выбранной фамилии. При этом в строке состояния окна таблицы присутствует слово "ФЛТП", а кнопка с изображением воронки на панели инструментов - кнопка фильтрования, затенена. Это означает, что используется фильтр. При нажатии на неё происходит отключение всех фильтров.
Установки фильтра не пропадают, просто он будет отключен. Фильтр по выделенному может собирать вместе критерии выбора при каждом использовании кнопки "Фильтр по выделенному". Ели поместить курсор в столбец, в котором был установлен режим фильтрации и щёлкнуть по кнопке "Фильтр по выделенному", то произойдет фильтрация данных.
Если требуется просмотреть значения, которые не удовлетворяют какому-то критерию, например, просмотреть всех абонентов, кроме одного, то находясь внутри любой ячейки с его фамилией нужно щёлкнуть правой клавишей мыши и в выпадающем меню выбрать команду "Исключить выделенное". При этом произойдет инверсный выбор.
Более сложные условия фильтрации можно задать, если перейти в меню "Записи" и в команде "Фильтр" выбрать пункт "Расширенный фильтр...".
Средства сортировки, фильтрации, поиска и замены данных реализованы в Access как автоматически создаваемые запросы данных.
9. Создание запросов
Конструирование запроса проводиться в 3 этапа:
1. Выбор полей,
2. Условия отбора нужных записей данных,
3. Сортировка записи БД.
Допустим, что нас интересует сколько абонентов позвонили в город Москву. Для решения этой задачи перейд`м к объекту "Запросы" и в режиме "Создание запросов с помощью мастера" создадим Запрос на выборку по таблице "Звонки". При этом сортировку результатов можно произвести, например, по полю, в котором представлены фамилии абонентов.
В окне "Создание простых запросов" (Рис. 29) выберем таблицу "Звонки", а из неё выберем поля: "Кто (код города)", "Кто номер", "Куда (код города)", "Кому (номер)", "Дата", "Продолжительность", нажмём кнопку "Далее".
Рис.29. Создание простых запросов.
Затем в следующем окне выберем вариант "Подробный отчёт", и перейдём по кнопке "Далее" в следующее окно. Зададим имя запроса, например, "Москва" и режим открытия запроса для просмотра данных, а затем нажмём кнопку "Готово".
В итоговой таблице запроса будут выведены все имеющиеся звонки. Необходимо выбрать только звонки в Москву. Для этого в режиме конструктора откроем запрос "Москва". В поле "Куда (код города)" введём условие отбора, а именно, равенство коду города Москвы (495). Теперь для всех строк запроса это поле будет одинаковым. Чтобы не выводить его на экран, убирём соответствующую галочку.
Рис.30. Запрос "Москва". Конструктор.
В результате выполнения такого запроса получитсятаблица, представленная на рис. 31.
Рис.31. Запрос "Москва".
В данном случае сортировка была осуществлена по поля "Дата".
Аналогичным образом можно создать запросы: "ИнфоГород" (Рис. 32) и "Город без абонентов" (Рис. 33) по таблице "Город", запрос "Переговоры абонентов" по таблицам "Телефон", "Звонки" и "Город" (Рис. 3, Рис.).
Запрос "ИнфоГород" выдаёт информацию по городам, отсортированным по возрастанию (использованы все поля таблицы "Город", но в ином виде, удобном для пользователя).
Рис.32. Запрос "ИнфоГород".
Запрос "Город без абонентов" выдает информацию (код города и название) тех городов, в которых не проживает ни один из абонентов, имеющихся в нашей базе данных "Переговоры" (Рис. 33).
Рис.33. Запрос "Город без абонентов".
Запрос "Переговоры абонентов" выдаёт подробную информацию по телефонным переговорам всех абонентов. Какие поля были выбраны, из каких таблиц, в каком порядке, а так же установленные свойства можно узнать, обратившись к Рис. 34.
Рис.34. Запрос "Переговоры абонентов". Конструктор.
Сортировка ведётся по четырём полям "Фамилия", "Имя", "Отчество", "Дата" и именно в такой последовательности. (Рис. 35).
Рис.35. Запрос "Переговоры абонентов".
Создайте самостоятельно вспомогательный запрос "Переговоры Коэф" (по конструктивной схеме рис. 36), который будет использоваться для расчёта стоимости телефонных переговоров каждого абонента.
Рис.36. Запрос "Переговоры Коэф". Конструктор.
В результате запрос "Переговоры Коэф" должен выглядеть следующим образом (Рис. 37).
Рис.37. Запрос "Переговоры Коэф".
Создадим запрос "Переговоры Стоимость". Для этого используем не таблицу, как это делалось ранее, а запрос "Переговоры Коэф". Выберем все поля, но отобразим не все и в следующем порядке: "Фамилия", "Имя", "Отчество", "Дата", "Продолжительность" (звонка), "Город" (откуда звонит абонент), "Название города" (куда звонит абонент). Создадим два новых поля: "Стоимость мин" (минуты разговора) и "Итог" (сумма за звонок) - Рис. 38.
Рис.38. "Переговоры Стоимость". Конструктор.
В поле "Стоимость мин" необходимо посчитать стоимость одной минуты разговора с тем или иным городом. Предположим, что стоимость минуты разговора вычисляется как среднее арифметическое коэффициентов городов, в том случае, если абоненты находятся в разных городах. При переговорах в пределах одного города плата не взымается. С помощью построителя выражений в поле "Стоимость мин" строим логическое выражение, удовлетворяющее условию (рис. 39).
Рис.39. Построитель выражений. Поле "Стоимость мин".
Вычислим стоимость всего разговора. Это стоимость минуты, умноженная на "Продолжительность" разговора (Рис. 40).
Рис.40. Построитель выражений. Поле "Итог".
Для полей "Стоимость мин" и "Итог" установим формат "Денежный" в "Свойствах поля". В итоге, запрос "Переговоры Стоимость" примет вид (Рис. 41).
Рис.41. Запрос "Переговоры Стоимость".
10. Создание отчётов
Создадим отчёт "Стоимость услуг", в котором сформируем данные для каждого абонента о том, когда, куда он звонил, как долго разговаривал. Ввыведем стоимость минуты каждого конкретного разговора и итог к оплате.
Для этого выберем объект "Отчёты", режим "Создание отчёта с помощью мастера". В открывшемся окне выберем запрос "Переговоры Стоимость", выделим необходимые поля. Выбираем группировку по четырём полям "Фамилия", "Имя", "Отчество", "Город" (в котором проживает абонент). По этим же полям устанавливаем сортировку по возрастанию.
Выберем макет "Блок" и ориентацию "Альбомная" для отчёта. Установим флажок "Настроить ширину полей для размещения на одной странице". Ззатем, в следующем окне, выберем стиль отчёта, например, строгий, а в последнем окне, зададим имя отчёта - "Стоимость услуг". Нажмём кнопку "Готово".
В результате получится готовый отчёт, который можно хранить в БД, а также распечатать (Рис. 42).
Рис.42. Отчет "Стоимость услуг".
Самостоятельно создайте отчёт "Переговоры абонентов", в котором сформируйте данные по переговорам для каждого абонента дата звонка; город, куда звонил; номер телефона, по которому звонил; длительность разговора (Рис. 43).
Рис.43. Отчет "Переговоры абонентов".
Заметим что, если в отчёт необходимо включить какие-либо математические действия, например, вычисление среднего балла, полученного учащимся по нескольким дисциплинам или в процессе изучения одной дисциплины, то поступают следующим образом:
1) Обычным образом в режиме Мастера создают отчёт, включив в него необходимые существующие поля таблиц. Полученный отчёт открывают и переходят в режиме "Конструктор". Активизируют элемент "Поле" в "Панели элементов" и вставляют его в "Область данных" отчёта.
Это поле состоит из двух частей: имени и содержания поля. Текст, автоматически созданный в части "имя поля", можно заменить, в части "содержание поля". По правой клавише мыши вызывают меню, в котором активизируют команду "Свойства". В появившемся окне переходят в строку "Данные" и нажимают на самую правую кнопку [...], которая вызывает окно "Построитель выражений". С помощь встроенных в него элементов строят, например, следующее выражение: "=([Зачет №1]+[Зачет №2]+[Зачет №3])/3".
2) Для оценок типа среднего балла следует в строке "Число десятичных знаков" установить цифру "1". По окончании выполнения этих процедур нажимают кнопку "OK".
Чтобы проверить и убедиться в том, что в Отчёте появились необходимые данные, надо перейти в меню "Вид" и выбрать в нём режим "Предварительный просмотр".