Макрокоманда ApplyFilter

Можете да използвате действието ApplyFilter, за да приложите филтър, заявка или SQL клауза WHERE към таблица, формуляр или отчет, така че да ограничите или да сортирате записите в таблицата или записите от базовата таблица или заявката на формуляра или отчета. За отчети можете да използвате това действие само в макрос, зададен от свойството на събитие OnOpen на отчета.

Забележка : Можете да използвате това действие, за да приложите SQL клауза WHERE, само когато прилагате филтър на сървъра. Филтър на сървъра не може да бъде приложен към източника на записи на записана процедура.

Забележка : Макрокомандата ApplyFilter не е налична в уеб приложенията на Access.

Настройка

Действието ApplyFilter има следните аргументи:

Аргумент на действие

Описание

Име на филтър

Името на филтъра или заявката, които ограничават или сортират записите на таблицата, формуляра или отчета. Можете да въведете името на съществуваща заявка или филтър, записан като заявка, в полето Име на филтър в секцията Аргументи на действия в прозореца на конструктора на макроси.

Забележка : Когато използвате това действие, за да приложите филтър на сървъра, аргументът Име на филтър трябва да бъде празен.

Условие Where

Валидна SQL клауза WHERE (без думата WHERE) или израз, който ограничава записите на таблицата, формуляра или отчета.

Забележка : В израз с аргумента Условие Where лявата страна на израза обикновено съдържа име на поле от базовата таблица или заявка за формуляра или отчета. Дясната страна на израза обикновено съдържа критериите, които искате да приложите към това поле, за да ограничите или сортирате записите. Критерият може да е например името на контрола в друг формуляр, съдържащ стойността, на която искате да съответстват записите от първия формуляр. Името на контролата трябва да е пълно, например:

Forms!formname!controlname

Имената на полетата трябва да са оградени с двойни кавички, а низовите константи – с единични кавички.

Максималната дължина на аргумента Условие Where е 255 знака. Ако трябва да въведете по-дълга SQL клауза WHERE, използвайте метода ApplyFilter на обекта DoCmd във Visual Basic for Applications (VBA). Във VBA можете да въведете команда с SQL клауза WHERE, съдържаща най-много 32 768 знака.


Забележка : Можете да използвате аргумента Име на филтър, ако вече сте дефинирали филтър, който предоставя правилните данни. Можете да използвате аргумента Условие Where, за да въведете директно критериите за ограничение. Ако използвате и двата аргумента, Access прилага клаузата WHERE върху резултатите от филтъра. Трябва да използвате единия или и двата аргумента.

Забележки

Можете да приложите филтър или заявка към формуляр в изглед на формуляр или изглед на лист с данни.

Филтърът и условието WHERE, които прилагате, стават настройката на свойството Filter или ServerFilter на формуляра или отчета.

За таблици и формуляри това действие е подобно на щракването върху Прилагане на филтриране/сортиране или Прилагане на филтър на сървъра в менюто Записи. Командата от менюто прилага последно създадения филтър към таблицата или формуляра, докато действието ApplyFilter прилага зададен филтър или заявка.

В база данни на Access, ако посочите към Филтър в менюто Записи и след това щракнете върху Разширено филтриране/сортиране, след като сте изпълнили действието ApplyFilter, прозорецът "Разширено филтриране/сортиране" показва критериите за филтриране, които сте избрали с това действие.

За да премахнете филтъра и да покажете всички записи за дадена таблица или формуляр в база данни на Access, можете да използвате действието ShowAllRecords или командата Премахване на филтриране/сортиране в менюто Записи. За да премахнете филтър в проект на Access (.adp), можете да се върнете към прозореца "Филтриране на сървър по формуляр" и да премахнете всички критерии за филтриране, след което да щракнете върху Прилагане на филтър на сървъра в менюто Записи в лентата с инструменти, или да зададете свойството ServerFilterByForm като False (0).

Когато запишете таблица или формуляр, Access записва всички филтри, дефинирани към момента в този обект, но не прилага филтъра автоматично при следващото отваряне на обекта (въпреки че прилага автоматично всяко сортиране, което сте приложили към обекта, преди да го запишете). Ако искате автоматично да се прилага филтър при първото отваряне на формуляра, задайте макрос, съдържащ действието ApplyFilter, или процедура за събитие, съдържаща метода ApplyFilter на обекта DoCmd, за настройката на свойството на събитието OnOpen за формуляра. Можете също да приложите филтър с помощта на действието OpenForm или OpenReport или съответните им методи. Ако искате автоматично прилагане на филтър при първото отваряне на таблицата, можете да отворите таблицата с помощта на макрос, съдържащ действието OpenTable, последвано веднага от действието ApplyFilter.

Пример

Прилагане на филтър с помощта на макрос

Следният макрос съдържа набор от действия, всяко от които филтрира записите за формуляр "Списък на телефоните на клиенти". Той показва използването на действията ApplyFilter, ShowAllRecords и GoToControl. Той също така показва използването на условията за определяне кой превключващ бутон в дадена група опции е избран във формуляра. Всеки ред за действия е свързан с превключващ бутон, който избира набора от записи, започващи с A, B, C и т. н., или всички записи. Този макрос трябва да бъде прикачен към събитие AfterUpdate на групата опции CompanyNameFilter.

Условие

Действие

Аргументи: настройка

Коментар

[CompanyNameFilters]=1

ApplyFilter

Условие Where: [CompanyName] Like "[AÀÁÂÃÄ]*"

Филтър за имената на фирми, които започват с A, À, Á, Â, Ã или Ä.

[CompanyNameFilters]=2

ApplyFilter

Условие Where: [CompanyName] Like "B*"

Филтър за имената на фирми, които започват с B.

[CompanyNameFilters]=3

ApplyFilter

Условие Where: [CompanyName] Like "[CÇ]*"

Филтър за имената на фирми, които започват с C или Ç.

... Редовете за действия за буквите от D до Y са със същия формат като тези за буквите от A до C ...

[CompanyNameFilters]=26

ApplyFilter

Условие Where: [CompanyName] Like "[ZÆØÅ]*"

Филтър за имената на фирми, които започват с Z, Æ, Ø или Å.

[CompanyNameFilters]=27

ShowAllRecords

Показване на всички записи.

[RecordsetClone].[RecordCount]>0

GoToControl

Име на контрола: CompanyName

Ако са върнати записи за избраната буква, насочете вниманието си върху контролата CompanyName.


Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към участниците в Office Insider

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×