Farbschema: Hell
Sie befinden sich hier: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Forms Object Library » how-to » Spalten eines Rasters filtern

Spalten eines Rasters filtern

Lassen Sie Benutzer die Datensätze mit Bedingungen für einzelne Spalten eingrenzen – in eine Filterzeile getippt oder aus einer Werteliste gewählt –, und setzen Sie dieselben Bedingungen aus VBA.

Voraussetzungen: WKL Forms Object Library 1.23 oder höher.

Lösungsüberblick

ShowFilterRow zeigt unter den Spaltenköpfen eine Zeile mit einer Bedingung je Spalte. Der Trichter in einem Spaltenkopf öffnet die Werteliste der Spalte. ShowFilterBar zeigt die aktiven Bedingungen unterhalb der Datensätze mit einem Schalter und „Filter löschen“. Aus VBA setzen ColumnFilter und ColumnFilterValues die Bedingungen, ColumnFilterEnabled setzt sie aus, und ClearColumnFilters entfernt sie.

Umsetzung

Private Sub Form_Load()
    With Me!Grid1.Object
        .ShowFilterRow = True
        .ColumnFilter("Ort") = "Bo*"                ' begins with
        .ColumnFilter("Umsatz") = ">= 100"
        .ColumnFilterValues("Land") = Array("DE", "AT")
        Debug.Print .RecordCount, .ColumnFilterText
    End With
End Sub
 
Private Sub Grid1_BeforeColumnFilter(ByVal Column As String, ByVal Text As String, Cancel As Integer)
    If Column = "Umsatz" And Text = "" Then Cancel = True        ' keep this condition
End Sub

Bedingungen der Filterzeile: Text allein wählt Werte, die damit beginnen (Bo); ein Muster mit * oder ? (*mann, B?uer); eine Zahl oder ein Datum allein wählt gleiche Werte (100); ein Vergleich (>= 100, <> Bonn); leer oder nicht leer. Zahlen und Datumsangaben werden im Format der Regionaleinstellungen von Windows gelesen, ohne Tausendertrennzeichen.

Hinweise

  • Der Spaltenfilter gilt zusätzlich zu Filter, das begrenzt, was aus der Datenherkunft gelesen wird.
  • Die Summen in Fußzeile und Gruppen folgen dem Spaltenfilter.
  • Eine Bedingung, die nicht zum Spaltentyp passt, wird während der Eingabe rot angezeigt und filtert nicht; aus VBA löst sie wkeInvalidValue aus.
  • BeforeColumnFilter und AfterColumnFilter melden die Änderungen des Benutzers in der Filterzeile, der Werteliste und der Filterleiste, nicht die aus VBA.
  • Die Suchleiste (Strg+F, SearchText) durchsucht alle sichtbaren Spalten und hebt die Treffer hervor, ohne zu filtern.
  • Im Servermodus sind die Bedingungen Teil jeder Anweisung an die Datenherkunft.

Verwandte Themen

de/wiki/msaccess/comctl/how-to/filter-grid-columns.txt · Zuletzt geändert: von Wolfgang van der Stille