|
Программирование >> Реализация целостности данных
ЧАСТЬ 3 Прпеетм1ю анмй псшьзрюатилкого ик1врфб*йса фильтру, можно записать таким образом: WHER поля> = <еьшеленное значеиие Если пользователь выделяет только несколько первых символов в поле и применяет фильтр по выделенному фрагменту, Access выбирает только те записи, которые начинаются с выделенных символов в этом ноле. Рассмотрим пример - базу данные но-ставляемую вместе с Access. Если пользователь выберет три символа в названии продукта Chartreuse i и применит фильтр но нолю Product Name, то на SQL условие WHERE, эквивалентное этому фильтру, можно сформулировать так: WHERE [Product Name] LIKE Cha* . Этот фильтр ограничит результирующий набор тремя записями с соответствующими названиями продуктов: Chartreuse verte, Chai и Chang. Если же пользователь выделяет несколько символов не в начале поля, а где-нибудь в середине или в и применяет фильтр, то Access выбирает все записи, которые содержат выделенные в этом поле. Например, если выбрать символы в названии продукта Chartreuse verte, то эквивалентное выражение WHERE на SQL запишется так: WHERE fProduct Name] LIKE ..:ti Результат применения этого фильтра , базе данные rtAwincf содержит десять записей (рис. 17-1). 19 Camanon Tigers ......... 39 Chartreuse vertB S0i Esoargots de Bourgofine 2д;Guarana Fantastica 32 Mascarpone Fabioli 72 Mozzaralla di Giovanni 73 Rod Kaviar 20 Sir Rodneys M-nrmsladf 2Лаг1еаи Sucre 1 Uncte Bobs Organ ic pried Pears JiiUtoNumber) .....; Puc, 17-1. Результат применение тыпра по выделенному фрагменту в пол induct Name ПРИМЕЧАНИЕ Говоря об эквивалентах языка SQL, я имею иду, лишь что соответствующий вернет те же результаты, что и при- менение фильтра. Трудно с уверенностью сказать, что происходит на самом деле, когда пользователь выбирает команду , i,/! By Selection - состааляет ли Access SQL-занрос с использованием оператора SELECT ГЛАВА 17 СоЗдЭНЯЕ ОГШСй или использует какие-то другие методы обработки данных. К сожалению, мне неизвестны описания внутренних механизмов выполнения команд, позволяющих фильтровать данные в Access. Фильтр по заданным значениям в нескольких полях Команда Filter By Selection предоставляет пользователю простой и удобный интерфейс, но у нес есть и недостаток - данные с ее помощью можно фильтровать только по одному полю. Чтобы еще более ограничить результирующий набор записей, пользователю придется выполнить команду Filter By Selection еще раз, задав новый критерий и используя набор результатов, полученный в результате применения первого фильтра. Это неудобно, особенно если команду приходится выполнять несколько раз, каждый раз используя новый критерий. Для пользователей, которые нуждаются в более мошных средствах фильтрации данных, в Access имеется команда Filter By Form (Изменить фильтр). На рис. 17-2 показан вид формы Customers из базы данных после того как в меню Records была выбрана эта команда. В=! CuGlomei: fWYtti by Form Рис. 17-2. Команда Filter By Form позволяет фильтровать записи no нескольким полям ( ill открываемое по команда Rller By Form, позволяет задать значения полей, используемых для фильтров. В нем имеется несколько вкладок, на каждой из которых можно указывать значения полей. Все значения, заданные на вкладке Look For (Найти), будут объединены логической операцией И (AND), а ко всем параметрам фильтра, указанным на отдельных вкладках Or (Или), будет применена ло- ЧАСТЬ 3 Проекгераваний попьзжате лье кого интерфейса гическая операция ИЛИ (OR). Данная концепция построения интерфейса, хотя и вполне продуманная, норой все же трудна для воснри-ятия пользователями. Дело том, что использование логических раций И и ИЛИ для фильтрации наборов данных и значение, вкладываемое в союзы и и или в большинстве европейских языков, различаются. По умолчанию в окне, открываемом по команде Filter By Form, каждое текстовое поде исходной формы представдено как комбинированное окно, содержашее все значения, храни- мые в этом поле. Вывод списка, все значения, можно отключить. Для этого следует на вкладке, позволяющей задать свойства текстового ноля, для параметра Filter Lookup енение автофильтра) выбрать значение Never (Никогда). Когда при задании критериев фидьтра исполътуется вывод подей исходной формы в виде комбинированного окна, при фильтрации записей в результирующий набор включаются записи, в которых значения соответствующих нолей точно совпадают со значением, выбранным пользователем в комбинированном окне. Если же автофильтр не используется (то есть для параметра Filter Lookup выбрано значение Never), пользователь может ввести в это поле значение, используемое для поиска записей, точно совпадающих с ним, или выражения для поиска: например LIKE СНА* иди IS NOT NULL. Решение, использовать ли автофильтр или предоставить пользователям право самостоятельно задавать критерии поиска, от того, сколько записей будет содержать комбинированное окно автофильтра (очевидно, заставлять нользователя просматривать 100 тыс. записей не имеет смысла), а также от необходимой гибкости интерфейса. Расширенный фильтр Команда Filter By Form и интерфейс, связанный с ней, в большинстве случаев удовлетворяют потребности и пользователей, и разработчиков. Но если пользователи знакомы со средствами создания запросов в Access, или если вы решили предоставить пользователям возможность выбирать значения для фильтра из комбинированного списка и вводить выражения, используемые в качестве критериев фильтра, то больше подойдут средства расширенного фильтра. Для этого в меню Records выберите команду Advanced Filter/Sort (Расширенный фильтр) и задайте параметры фильтра тствугоших нолях открывшегося диалогового окна (рис.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |