Добавление сортировки по нескольким столбцам и составного критерия отбора
Чтобы создать расширенный фильтр или расширенную сортировку, выберите команду "Записи, Фильтр, Расширенный фильтр" На панели инструментов нет кнопки, эквивалентной этой команде. Чтобы создать фильтр для таблицы "Заказы" демонстрационной базы данных Борей:
1. Откройте таблицу "Заказы" в режиме таблицы.
2. Выберите команду "Записи, Фильтр, Расширенный фильтр". Появится окно расширенного фильтра (рис.18). По умолчанию фильтру присваивается имя "Фильтр!", а в качестве префикса используется имя таблицы. Поэтому наш фильтр получит имя "ЗаказыФильтр1". В нижней части окна расширенного фильтра появляется бланк фильтра, в котором можно указать критерий отбора.
3. Чтобы отсортировать значения поля таблицы или задать для него критерий отбора, перетащите его из списка полей таблицы, который находится в верхней части окна расширенного фильтра в бланк фильтра. Например, чтобы задать параметры сортировки или критерий отбора для поля "КодЗаказа", перетащите его в первую ячейку строки "Поле" (Field) бланка таблицы. При перетаскивании имени поля из списка в верхней части окна расширенного фильтра в бланк фильтра, указатель мыши превращается в символ поля.
4. Повторите шаг 3 для всех полей таблицы, для которых необходимо определить критерий отбора или параметры сортировки. Для таблицы "Заказы" такими полями могут быть, например, поля "КодКлиента", "АдресПолучателя", "СтранаПолучателя", "ИндексПолучателя".
5. Установите параметры сортировки значений полей "СтранаПолучатёля" и "ИндексПолучателя", чтобы проверить возможности расширенной сортировки (рис.19).
Рис. 19. Установка параметров расширенной сортировки
6. Выберите команду "Фильтр, Применить фильтр" или нажмите кнопку "Применить фильтр" на панели инструментов.
7. Таблица будет отсортирована по значениям полей "Страна получателя" и "Индекс получателя"
Рис. 20. Таблица "Заказы" после применения расширенной сортировки
8. Выберите команду "Записи, Фильтр, Расширенный фильтр", чтобы открыть окно расширенного фильтра. Заметьте, что в бланке расширенного фильтра сохранились все установки, сделанные ранее.
9. Чтобы произвести отбор записей, относящихся к заказам, в которых страной-получателем является США, введите в ячейку, находящуюся на пересечении строки "Условие отбора" и столбца "Страна получателя", слово США. Нажмите клавишу <Enter>. Access автоматически заключит введенную строку в кавычки.
10. Чтобы применить расширенный фильтр, выберите команду "Фильтр, Применить фильтр". В окне таблицы появятся только те записи, которые относятся к отправке товаров в США (рис.21)
Рис. 21. Отбор заказов клиентов из США
Использование сложных критериев отбора.
Access позволяет определять сложные критерии отбора записей из таблиц при помощи расширенного фильтра. Сложные критерии отбора помогают производить фильтрацию записей таблицы данных по значениям нескольких полей. Например, чтобы вывести в окне таблицы все заказы из стран Северной Америки, полученные не ранее 01/01/94:
1. Выберите команду "Записи, Фильтр, Расширенный фильтр". Появится окно расширенного фильтра.
2. Введите Канада в качестве второго критерия отбора для поля "СтранаПолучателя", нажмите клавишу <Enter>, а затем введите Мексика в качестве третьего критерия. При добавлении нескольких критериев отбора для одного поля они группируются при помощи оператора "ИЛИ". Это эквивалентно использованию оператора or языка SQL.
3. Введите >=#l/l/94# в качестве первого критерия отбора для поля "ДатаРазмешения". Если в одной строке бланка фильтра определено несколько критериев отбора, то они группируются при помощи оператора "И". Это эквивалентно использованию оператора and языка SQL. Таким образом, первую строку критериев отбора можно интерпретировать так: отобрать все заказы из США, поступившие не ранее 01/01/94. Символы # указывают на то, что значение, заключенное в них, имеет тип "Дата/Время".
4. Нажмите клавишу <F2>, чтобы выделить критерий отбора, определенный на шаге 3, нажмите комбинацию клавиш <Ctrl>+<С>, чтобы скопировать выделенный фрагмент в Буфер обмена Windows. Переместите точку вставки в следующую ячейку столбца "ДатаРазмешения" и нажмите комбинацию клавиш <Ctrl>+<V>. Теперь при фильтрации таблицы будет учитываться ограничение по времени поступления заказов из Канады. Повторите шаг 4, чтобы добавить ограничение по времени для заказов из Мексики. Бланк фильтра примет вид, показанный на рис.22. Необходимость повторения определения условия по времени для каждой страны вызвана ограничениями, накладываемыми на формирование запросов с помощью бланков.
Рис. 22. Определение сложного критерия отбора в бланке фильтра
5. Нажмите кнопку "Применить фильтр" на панели инструментов. Таблица "Запросы" будет отфильтрована с использованием сложного критерия отбора (рис. 6.23).
Результат фильтрации таблицы в приведенном примере аналогичен результату выполнения следующей инструкции языка SQL:
SELECT * FROM Orders
WHERE ([Ship Country] = 'USA'
OR [Ship Country] = 'Canada'
OR [Ship Country] = 'Mexico')
AND [Order Date] >= #1/1/94#
ORDER BY [Ship Country], [Ship Postal Code]
Рис. 6.23. Результат применения сложного критерия отбора
С помощью конструкции in инструкция SQL может быть еще более упрощена:
SELECT * FROM Orders
WHERE [Ship Country] IN ('USA', 'Canada', 'Mexico')
AND [Order Date] >= #1/1/94#
ORDER BY [Ship Country], [Ship Postal Code]1
Ни одна из вышеприведенных оптимизированных инструкций SQL не может быть сгенерирована Access автоматически из бланка фильтра.
Это ограничение объясняется тем, что хотя бланк фильтра является универсальным средством задания условия фильтрации, он позволяет задавать условия только в определенной форме, а именно в так называемой дизъюнктивной нормальной форме.
Дата добавления: 2014-12-12; просмотров: 981;