 |
Access 7.0: Schnelles und flexibles Suchformular
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« 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 kopieren das untenstehende Modul hinein. ▄berprⁿfen Sie das Modul vor dem Speichern mit »Ausfⁿhren | Geladene Module kompilieren« auf Fehler, und Ihr Suchformular ist einsatzbereit. ╓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. 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 & "]" sTabname = Screen.ActiveForm(sFeldname).RowSource Set db = CurrentDb() Set rs = db.OpenRecordset(sTabname) iTyp = rs.Fields(sSuchfeld).Type sKriterium = BuildCriteria("[" & sTabname & "]." & sSuchfeld, iTyp, sSuchenNach) DoCmd.OpenForm sFormName, acFormDS, , sKriterium End Function
|
 |