Access 7.0
Schnelles und flexibles Suchformular
Antwort
Tip: Mit einem Modul kann man Access dazu bewegen,
auch formulierte Suchanweisungen zu verstehen. So liefert
etwa die Eingabe »zwischen 1.2.96 und 23.6.96« in einer
Suchmaske alle Datensätze, bei denen der Datumswert eines ausgewählten
Datenbankfeldes innerhalb dieses Zeitraums liegt. In diesem Tip wird gezeigt, wie Sie
dieses
praktische Filterformular in die Beispieltabelle »NORDWIND.
MDB« ganz einfach einbinden können. Öffnen Sie diese Beispieldatenbank - sie
befindet sich im Unterverzeichnis »Beispiele« Ihres Access-Verzeichnisses. Wechseln
Sie auf das Registerblatt »Formular« und betätigen dann die Schaltfläche »Neu«.
Achten Sie bitte in der folgenden Dialogbox darauf, daß sich die blaue Markierung auf
»Entwurfsansicht« befindet. Betätigen Sie die Schaltfläche »OK«, ohne zuvor eine
Tabelle als Grundlage auszuwählen.
Im Formularentwurf deaktivieren Sie nun den Steuerelementassistenten, falls er
eingeschaltet
ist, durch einen Klick auf die entsprechende Schaltfläche
und fügen nach einem weiteren Klick auf die Schaltfläche
»Kombinationsfeld« ein Listenfeld in die Formularfläche
ein. Nach einem rechten Mausklick auf das neue
Objekt wählen Sie »Eigenschaften« und klicken auf das
Register »Alle«. Geben Sie unter »Name« die Bezeichnung
»Suchfeld« ein und wählen in der Zeile »Herkunftstyp« die
Option »Feldliste« aus. Unter »Datensatzherkunft« suchen
Sie die Tabelle »Bestellungen« aus der Liste.
Als nächsten Schritt fügen Sie nun ein Textfeld ein, in das
Sie später Ihre Suchkriterien eintragen werden.
Legen Sie hier unter »Eigenschaften« als »Name«
die Bezeichnung »Suchwert« fest. Zum Auslösen der
Suche benötigen Sie noch eine »Befehlsschaltfläche«,
die Sie ebenfalls mit einem Klick auf die entsprechende
Schaltfläche einfügen, und im Feld »Beim Klicken«
Öffnen Sie das Formular »Suchen« und klicken auf das
Kombinationsfeld, um das gewünschte Datenfeld - also zum Beispiel »Bestelldatum« -
auszuwählen. In das Textfeld können Sie jetzt den gewünschten Zeitraum in Form
von »zwischen (Datum) und (Datum)« eingeben. Nach einem Klick auf die Schaltfläche
erscheinen alle Datensätze, deren Bestelldatum in diesem Zeitraum liegt. Sie können
auch flexibel nach anderen Kriterien suchen.
Um zum Beispiel alle Firmen auswählen, die mit »Ma« beginnen, wählen Sie im
Auswahlfeld »Empfänger«
und geben in das Textfeld die Suchformel »Ma*« ein.
des Registers »Ereignis« folgende Zeile:
»=bscFormFilter([Suchfeld]; "Suchfeld";[Suchwert];
"Bestellungen")« Das Formular ist nun fertiggestellt,
Sie können es unter dem Namen »Suchen« speichern
und danach schließen. Jetzt fehlt noch das Modul,
mit dessen Hilfe die Befehlsschaltfläche das Suchergebnis
zum Vorschein bringt. Mit »Einfügen | Modul« legen Sie
ein neues Modul an und geben die im Kasten abgedruckten
Zeilen ein. Überprüfen Sie das Modul vor dem Speichern mit
»Ausführen | Geladene Module kompilieren« auf Fehler,
und Ihr Suchformular ist einsatzbereit. Modul bscFormFilter
Function bscFormFilter(sSuchfeld As String, sFeldname As String, _sSuchenNach As
Variant, sFormName As String)
Dim db As Database Dim rs As Recordset
Dim sTabname As String
Dim iTyp As Integer
Dim sKriterium As String
sSuchfeld = "[" & sSuchfeld & "]"