Komfortable Filterformulare erstellen

22.01.2004

Erstellen Sie ein eigenes Filterformular um dem Anwender die Definition eigener Filter zu ermöglichen.

Wenn Sie professionelle Datenbanken entwickeln und dem Anwender die Möglichkeit zur Definition eigener Filter ermöglichen wollen, sind die von Access angebotenen Filtermöglichkeiten oftmals von der Bedienung her zu kompliziert.

Unser Tipp: Erstellen Sie einfach ein eigenes Filterformular!

Besonders einfach wird dies durch die BuildCriteria-Funktion. Legen Sie einfach ein neues leeres Formular an, das Sie mittels der Datenherkunft-Eigenschaft an die gewünschte Datenquelle knüpfen. Auf diesem Formular plazieren Sie nun für jedes Datenfeld ein ungebundenes Textfeld. Ungebunden bedeutet, dass das jeweilige Textfeld nicht an ein Datenfeld gebunden sein darf.

Die Namen der einzelnen Textfelder müssen mit den Namen der jeweiligen Datenfelder übereinstimmen. Ausserdem tragen Sie in die Marke-Eigenschaft (engl. Tag) der Textfelder den Text Filter ein. So können die Felder später von den Bezeichnungsfeldern oder anderen Steuerelementen unterschieden werden.

Die Umwandlung der Benutzereingabe in ein SQL-Kriterium erledigt die folgende Funktion:

Function SQLTextErstellen(FormObj As Form)

Dim R As Recordset
Dim C As Control
Dim SQL As String

   Set R = FormObj.RecordsetClone

   For Each C in FormObj.Controls

      If C.Tag = "Filter" Then
         If IsNUll(C.Value) = False Then
               SQL = SQL & "("_
                           & BuildCriteria(C.Name, R(C.Name).Type, C.Value)_
                           & ") AND"

          End If
      End If

   Next C

   'Rechtes AND abschneiden
   If Len(SQL) <> 0 Then
     SQL = Left(SQL, Len(SQL) - 5)
   End If

   SQLTextErstellen = SQL

End Function

Die Prozedur durchläuft alle Steuerelemente des angegebenen Formulars und überprüft die Tag-Eigenschaft auf den Inhalt Filter. Bei diesen Feldern wird mit Hilfe der BuildCriteria-Funktion eine SQL-Bedingung zusammengestellt und als Ergebnis der Funktion zurückgegeben.

Angenommen Ihr Filterformular enthält die Textfelder Vorname, Nachname und Postleitzahl. In das Formular haben Sie die folgenden Kriterien eingegeben:

Feld Kriterium
Vorname Wie "A*"
Nachname (keine Eingabe)
Postleitzahl Zwischen 10000 Und 40000

Die SQLTextErstellen-Funktion ermittelt für diese Eingaben den folgenden SQL-Text:

(Vorname Like "A*") AND (Postleitzahl Betweeen 10000 And 40000)

Diesen Ausdruck können Sie anschließend direkt der Filter-Eigenschaft des Formulars zuweisen, um die Datensätze entsprechend zu filtern.

Weiterführende Links:

Weitere Tipps & Tricks

22.01.2004

Eingabe in Filterkriterium umwandeln

Umwandlung von Abfragekriterien in gültige SQL-Bedingungen innerhalb einer VBA-Prozedur

Tipp/Trick

Dienstleistungen

Als starker Partner an Ihrer Seite unterstützen wir Sie in folgenden Breichen:

Access-Programmierung

Benötigen Sie Unterstützung bei der Programmierung von Access-Anwendungen? Wir bieten die gesamte Bandbreite von der Access-Programmierung auf Stundenbasis bis zur Durchführung eines Software-Projektes als Auftragsarbeit an. Kontaktieren Sie uns für ein kostenloses Erstgespräch.

Software-Beratung

Haben Sie ein Software-Projekt und Sie wissen nicht, ob Access die richtige Plattform ist? Wir haben über 20 Jahre Erfahrung beim Erstellen von Windows-, Web und mobilen Anwendungen. Kontaktieren Sie uns für eine kostenlose Erstberatung.