Form.ApplyFilter-Ereignis (Access)

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

Syntax

Ausdruck verwendet werden. 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

Wenn Sie ein Makro oder eine Ereignisprozedur ausführen möchten, 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 korrekt ist. Sie können beispielsweise sicherstellen, dass Filter, die auf ein Formular "Bestellungen" angewendet werden, Kriterien enthalten, die das Feld "Bestelldatum " einschränken. Überprüfen Sie dazu den Eigenschaftswert "Filter " oder "ServerFilter" des Formulars, um sicherzustellen, dass dieses Kriterium im Ausdruck der WHERE-Klausel 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 Filterereignisses ausgeführt haben. Sie können z. B. einige Steuerelemente im Formular deaktivieren oder ausblenden, wenn der Benutzer den Filter erstellt, da diese Steuerelemente nicht in die Filterkriterien einbezogen werden sollen. 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, Formularfilter oder Serverfilter Formularbasiert geschlossen wird, 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 Close-Aktion oder die Close-Methode des DoCmd-Objekts , um das Fenster Erweiterter Filter/Sortierung, Formularbasierter Filter oder Formularbasierter Serverfilter zu schließen.
  • Legt die Filter - oder ServerFilter-Eigenschaft oder die FilterOn - oder ServerFilterByForm-Eigenschaft in einem Makro oder Visual Basic fest (Sie können diese Eigenschaften aber auch in einer ApplyFilter-Ereignisprozedur oder einem Makro festlegen).

Beispiel

Das folgende Beispiel zeigt, wie die Steuerelemente "AmountDue", "Tax" und "TotalDue" in einem Formular "Bestellungen " ausgeblendet werden, wenn der angewendete Filter die Datensätze auf die Bestellungen beschrä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.