Access 2002

Свойство Filteron


Если же в момент, когда пользователь даст команду Filter By Selection, текущий фильтр будет неактивен (свойство FilterOn имеет значение False), Access просто заменит старое условие фильтрации новым. Когда вы закроете форму, Access сохранит  в ее свойстве Filter текущее условие фильтрации.

Access не проверяет заданный вами критерий фильтрации. Поэтому, выполнив команду filter By Selection несколько раз подряд, можно сформировать совершенно бессмысленный критерий, по которому вообще не будет отобрано ни одной записи. Собственно говоря, Access и не может тут ничего сделать, так что пользователь должен самостоятельно отслеживать смысл налагаемых им критериев отбора данных.

Когда пользователь активизирует команду Filter By Form, Access выводит существующие критерии фильтрации в элементах управления текущей формы. Если какой-то критерий относится к полю, для которого в форме нет элемента управления, он просто удаляется из фильтра.

Пользователь может задать в этом режиме новые критерии фильтрации. В результате, когда он даст команду Filter By Form, эти критерии заменят исходные. При закрытии формы значение свойства Filter будет сохранено в ней обычным образом.

Команда Advanced Filter  Sort позволяет пользователю сформировать объединенное выражение для отбора и сортировки данных. Такое выражение полностью заменяет исходное условие фильтрации, независимо от того, активен фильтр или нет.

Чтобы отфильтровать данные формы программным путем, нужно обратиться к методу ApplyFilter объекта DoCmd. В качестве условия отбора для фильтра можно задать либо SQL-предложение WHERE, либо имя запроса, либо и то и другое. Если вы зададите один из двух аргументов метода, Access поместит соответствующий критерий отбора в свойство формы Filter. Это означает, что если предложение WHERE запроса qrySimple имеет вид "ID = 5й, выполнение следующих двух операторов даст один и тот же результат: свойству формы Filter будет присвоено выражение "ID = 5".

Комментарии закрыты