Freigeben über


Form.ApplyFilter-Ereignis (Access)

Tritt auf, wenn ein Filter auf ein Formular angewendet wird.

Syntax

Ausdruck. ApplyFilter (Cancel, ApplyType)

expression Eine Variable, die ein Form-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
Abbrechen Erforderlich Integer Durch die Einstellung wird bestimmt, ob das ApplyFilter-Ereignis auftritt. Wenn Sie das Cancel-Argument auf True festlegen, wird das ApplyFilter -Ereignis abgebrochen, und der Filter wird nicht auf das Formular angewendet.
ApplyType Erforderlich Integer Gibt den Typ des angewendeten Filters zurück.

Hinweise

Um ein Makro oder eine Ereignisprozedur auszuführen, wenn dieses Ereignis auftritt, legen Sie die OnApplyFilter-Eigenschaft auf den Namen des Makros oder auf [Ereignisprozedur] fest.

Verwenden Sie das ApplyFilter-Ereignis für Folgendes:

  • Stellen Sie sicher, dass der angewendete Filter richtig ist. Sie können beispielsweise sicherstellen, dass jeder Filter, der auf ein Bestellformular angewendet wird, Kriterien enthält, die das Feld OrderDate einschränken. Überprüfen Sie dazu den Filter - oder ServerFilter-Eigenschaftswert des Formulars, um sicherzustellen, dass dieses Kriterium im WHERE-Klauselausdruck enthalten ist.

  • Ändern der Darstellungsweise des Formulars, bevor ein Filter zugewiesen wird. Dies bietet sich z. B. an, wenn Sie einige Felder deaktivieren oder ausblenden möchten, die für die von diesem Filter angezeigten Datensätze überflüssig sind.

  • Rückgängigmachen oder Ändern von Aktionen, die Sie beim Auftreten des Filter-Ereignisses ausgeführt haben. Sie können beispielsweise einige Steuerelemente im Formular deaktivieren oder ausblenden, wenn der Benutzer den Filter erstellt, da Sie nicht möchten, dass diese Steuerelemente in die Filterkriterien einbezogen werden. Sie können diese Steuerelemente wieder aktivieren oder anzeigen, nachdem der Filter angewendet wurde.

Die Aktionen in der ApplyFilter-Ereignisprozedur oder dem Makro treten auf, bevor der Filter angewendet oder entfernt wird oder nachdem das Fenster Erweiterter Filter/Sortierung, Nach Formular filtern oder Serverfilter nach Formular geschlossen wurde, aber bevor das Formular erneut angezeigt wird. Die Kriterien, die Sie in den neu erstellten Filter eingegeben haben, stehen der ApplyFilter-Ereignisprozedur oder dem Makro als Einstellung der Filter - oder ServerFilter-Eigenschaft zur Verfügung.

Hinweis

Das ApplyFilter-Ereignis tritt nicht auf, wenn der Benutzer einen der folgenden Schritte ausführt:

  • Wendet einen Filter mithilfe der Aktionen ApplyFilter, OpenReport oder ShowAllRecords in einem Makro oder der entsprechenden Methoden des DoCmd-Objekts in Visual Basic an oder entfernt einen Filter.
  • Verwendet die Schließen-Aktion oder die Close-Methode des DoCmd-Objekts , um die Fenster Erweiterter Filter/Sortierung, Nach Formular filtern oder Server nach Formular filtern zu schließen.
  • Legt die Filter - oder ServerFilter-Eigenschaft oder filterOn - oder ServerFilterByForm-Eigenschaft in einem Makro oder Visual Basic fest (obwohl Sie diese Eigenschaften in einer ApplyFilter-Ereignisprozedur oder einem Makro festlegen können).

Beispiel

Im folgenden Beispiel wird gezeigt, wie die Steuerelemente AmountDue, Tax und TotalDue in einem Bestellformular ausgeblendet werden, wenn der angewendete Filter die Datensätze auf die bestellungen einschränkt, die bezahlt wurden.

Um dieses Beispiel auszuprobieren, fügen Sie die folgende Ereignisprozedur zu einem Bestellformular hinzu, das Die Steuerelemente AmountDue, Tax und TotalDue enthält. Führen Sie einen Filter aus, der nur die Bestellungen anzeigt, die bereits bezahlt sind.

Private Sub Form_ApplyFilter(Cancel As Integer, ApplyType As Integer) 
 If Not IsNull(Me.Filter) And (InStr(Me.Filter, "Orders.Paid = -1")>0 _ 
 Or InStr(Me.Filter, "Orders.Paid = True")>0)Then 
 If ApplyType = acApplyFilter Then 
 Forms!Orders!AmountDue.Visible = False 
 Forms!Orders!Tax.Visible = False 
 Forms!Orders!TotalDue.Visible = False 
 ElseIf ApplyType = acShowAllRecords Then 
 Forms!Orders!AmountDue.Visible = True 
 Forms!Orders!Tax.Visible = True 
 Forms!Orders!TotalDue.Visible = True 
 End If 
 End If 
End Sub

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.