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
wkeInvalidValueaus. BeforeColumnFilterundAfterColumnFiltermelden 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
- Knoten suchen und filtern (Suchleiste und
Filterder Struktur und der Liste) - Spalten einer Strukturliste filtern (derselbe Filter in
WklTreeList)