Puteți utiliza acțiunea AplicareFiltru pentru a aplica o clauză filtru, interogare sau SQL WHERE la un tabel, formular sau raport pentru a restricționa sau a sorta înregistrările din tabel, înregistrările din tabelul subiacent sau interogarea pentru formular sau raport. Pentru rapoarte, puteți utiliza această acțiune numai într-o macrocomandă specificată de proprietatea de eveniment OnOpen a raportului.
Notă: Puteți utiliza această acțiune pentru a aplica o clauză SQL WHERE doar atunci când aplicați un filtru de server. Filtrul de server nu poate fi aplicat la sursa de înregistrări a unei proceduri stocate.
Notă: Acțiunea de macrocomandă AplicareFiltru nu este disponibilă în aplicațiile web Access.
Setare
Acțiunea AplicareFiltru are următoarele argumente.
Argument acțiune |
Descriere |
Nume filtru |
Numele unui filtru sau al unei interogări care restricționează sau sortează înregistrările din tabel, formular sau raport. Puteți introduce numele unei interogări existente sau al unui filtru care a fost salvat ca interogare în caseta Nume filtru din secțiunea Argumentele acțiunii a panoului Generator de macrocomenzi. Notă: Atunci când utilizați această acțiune pentru a aplica un filtru de server, argumentul Nume filtru trebuie să fie necompletat. |
Condiția Where |
O clauză SQL WHERE validă (fără cuvântul WHERE) sau o expresie care restricționează înregistrările din tabel, formular sau raport. Notă: Într-o expresie argument Condiția Where, partea stângă a expresiei conține de obicei un nume de câmp din tabelul subiacent sau din interogarea subiacentă pentru formular sau raport. Partea din dreapta a expresiei conține de obicei criterii pe doriți să le aplicați la acest câmp pentru a restricționa sau a sorta înregistrările. De exemplu, criteriul poate fi numele unui control dintr-un alt formular care conține valoarea cu care doriți să se potrivească înregistrările din primul formular. Numele controlului ar trebui să fie complet, de exemplu: Forms!numeformular!numecontrol Numele câmpurilor ar trebui să fie încadrate de ghilimele duble, iar șirurile de litere ar trebui să fie încadrate de ghilimele simple. Lungimea maximă a argumentului Condiția Where este de 255 de caractere. Dacă trebuie să introduceți o clauză SQL WHERE mai lungă, utilizați metoda AplicareFiltru a obiectului DoCmd într-un modul Visual Basic for Applications (VBA). În VBA puteți introduce instrucțiuni pentru clauza SQL WHERE cu o lungime de până la 32.768 de caractere. |
Notă: Puteți utiliza argumentul Nume filtru dacă ați definit deja un filtru care furnizează datele corespunzătoare. Puteți utiliza argumentul Condiția Where pentru a introduce direct criteriile de restricție. Dacă utilizați ambele argumente, Access aplică clauza WHERE la rezultatele filtrării. Trebuie să utilizați unul sau ambele argumente.
Observații
Puteți aplica un filtru sau o interogare la un formular din Vizualizare formular sau din vizualizare Foaie de date.
Filtru și condiția WHERE pe care le aplicați devin setarea proprietății Filtru sau FiltruServer a formularului sau a raportului.
Pentru tabele și formulare, această acțiune este similară cu un clic pe Se aplică filtrare/sortare sau Se aplică filtrare în server din meniul Înregistrări. Comanda de meniu aplică filtrul creat cel mai recent la tabel sau formular, în timp ce acțiunea AplicareFiltru aplică un filtru sau o interogare specificată.
Într-o bază de date Access, dacă indicați spre Filtru în meniul Înregistrări și faceți clic pe Filtrare/sortare complexă după ce rulați acțiunea AplicareFiltru, Fereastra Filtrare/sortare complexă afișează criteriile de filtrare pe care le-ați selectat cu această acțiune.
Pentru a elimina un filtru și a afișa toate înregistrările pentru un tabel sau formular dintr-o bază de date Access, puteți utiliza acțiunea AfișareToateÎnreg sau comanda Elimina filtrare/sortare din meniul Înregistrări. Pentru a elimina un filtru dintr-un proiect Access (.adp), puteți să reveniți la fereastra Server Filtrare după formular și să eliminați toate criteriile de filtrare, apoi faceți clic pe Se aplică filtrare în server din meniul Înregistrări de pe bara de instrumente sau setați proprietatea FiltruServerDupăFormular la Fals (0).
Când salvați un tabel sau un formular, Access salvează orice filtru definit în prezent în obiectul respectiv, dar nu va aplica automat filtrul la următoarea deschidere a obiectului (deși va aplica automat orice sortare pe care ați aplicat-o la obiect înainte de a-l salva). Dacă doriți să aplicați automat un filtru atunci când un formular este deschis pentru prima oară, specificați o macrocomandă care conține acțiunea AplicareFiltru sau o procedură eveniment care conține metoda AplicareFiltru a obiectului DoCmd ca setare pentru proprietatea de eveniment OnOpen a formularului. Puteți, de asemenea, să aplicați un filtru utilizând acțiunea DeschidereFormular sau DeschidereRaport sau metodele asociate. Pentru a aplica automat un filtru atunci când un tabel este deschis pentru prima oară, puteți deschide tabelul utilizând o macrocomandă care conține acțiunea DeschidereTabel, urmată imediat de acțiunea AplicareFiltru.
Exemplu
Aplicarea unui filtru utilizând o macrocomandă
Următoarea macrocomandă conține un set de acțiuni și fiecare dintre acestea filtrează înregistrările pentru un formular Listă numere de telefon clienți. Aceasta arată modul de utilizare a acțiunilor AplicareFiltru, AfișareToateÎnreg și SaltLaControl. De asemenea, arată modul de utilizare a condițiilor pentru a afla care buton de comutare dintr-un grup de opțiuni a fost selectat în formular. Fiecare rând de acțiune este asociat cu un buton de comutare care selectează setul de înregistrări, începând cu A, B, C etc. sau toate înregistrările. Această macrocomandă ar trebui să fie atașată la evenimentul AfterUpdate din grupul de opțiuni FiltruNumeFirmă.
Condiție |
Acțiune |
Argumente: Setare |
Comentariu |
[FiltreNumeFirmă] = 1 |
AplicareFiltru |
Condiția Where: [NumeFirmă] Like "[AÀÁÂÃÄ]*" |
Filtrează nume de firme care încep cu A, À, Á, Â, Ã sau Ä. |
[FiltreNumeFirmă] = 2 |
AplicareFiltru |
Condiția Where: [NumeFirmă] Like "B*" |
Filtrează nume de firme care încep cu B. |
[FiltreNumeFirmă] = 3 |
AplicareFiltru |
Condiția Where: [NumeFirmă] Like "[CÇ]*" |
Filtrează nume de firme care încep cu C sau Ç. |
... Rândurile de acțiune de la D până la Y au același format ca și A până la C... |
|||
[FiltreNumeFirmă] = 26 |
AplicareFiltru |
Condiția Where: [NumeFirmă] Like „[ZÆØÅ]*” |
Filtrează nume de firme care încep cu Z, Æ, Ø sau Å. |
[FiltreNumeFirmă] = 27 |
AfișareToateÎnreg |
Afișează toate înregistrările. |
|
[RecordsetClone]. [ContorÎnregistrări] > 0 |
SaltLaControl |
Nume control: NumeFirmă |
Dacă sunt returnate înregistrări pentru litera selectată, deplasați focalizarea către controlul NumeFirmă. |