Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 2/2002.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Datensätze suchen per Formular

Autor: Klaus Giesen, Wuppertal

Wer suchet, der findet - heißt es so schön. Bezogen auf Access bedeutet dies, dass Sie als Anwender in der Lage sein sollten, rasch und komfortabel die gewünschten Datensätze in einem Formular zu finden. Falls Sie dabei allein auf die eingebauten Suchmöglichkeiten von Access angewiesen sind, schaut es mit Komfort und erweiterten Suchoptionen - wie beispielsweise die Verknüpfungen mehrerer Felder mit Und bzw. Oder - ziemlich trübe aus. Auch wenn Sie lediglich zu einem ganz bestimmten Datensatz - beispielsweise einem bestimmten Nachnamen - springen wollen, ist das ohne eine selbst gebaute Funktionalität nicht ohne Weiteres möglich.

In diesem Beitrag werden drei verschiedene Methoden zum Suchen von Datensätzen vorgestellt. Die ersten beiden (per Kombinations- bzw. per Listenfeld) sind zwar einerseits relativ simpel gehalten, andererseits aber gerade deshalb vorzüglich dazu geeignet, schnell den gewünschten Datensatz - beispielsweise über den Nachnamen - auszuwählen.

Abb. 1: Das Formular frmKontakte 1 zur Suche per Kombinationsfeld

Die dritte Methode ist eine Suche per QbF (engl. Query by Form). Damit ist eine felderübergreifende Suche nach beliebigen Kriterien inklusive Und- bzw. Oder-Verknüpfung möglich. Die Beispieldatenbank demonstriert die Suche mittels einer einfachen Kontaktverwaltung. Sie liegt in Versionen für Access 97 (RecordsFind97.mdb) und Access 2000 (RecordsFind2000.mdb) auf der beiliegenden CD vor.

Datensätze per
Kombinationsfeld suchen

Das folgende Beispiel finden Sie im Formular FrmKontakte 1 der Beispieldatenbank.

Bedienung der Suche

Zur Suche nach einem Datensatz klappen Sie lediglich das Kombinationsfeld auf und markieren den gewünschten Namen (s. Abb. 1).

Alternativ dazu können Sie auch den ersten Buchstaben des gesuchten Namens eintippen. Dafür ist die Kombinationsfeldeigenschaft Automatisch ergänzen verantwortlich, die in diesem Fall auf Ja eingestellt ist.

Abb. 2: Das Formular frmKontakte 2 zur Suche per Listenfeld

Private Sub CboSuchen_AfterUpdate()

    DoCmd.GoToControl "Nachname"

    DoCmd.FindRecord CboSuchen, acEntire, False, _
        acSearchAll, False, , True

End Sub

Quellcode 1

Private Sub BtnWeitersuchen_Click()

    DoCmd.GoToControl "Nachname"

    If Not IsNull(CboSuchen) Then

        DoCmd.FindNext

    End If

End Sub

Quellcode 2

Falls mehrere identische Nachnamen vorhanden sind, klicken Sie auf die Schaltfläche Weitersuchen, um zum gewünschten Namen zu gelangen.

Funktionalität der Suche

Die Funktionalität der Kombinationsfeldsuche liegt zunächst einmal in der zugrunde liegenden Abfrage qryCboSuchen begründet. Diese ist als Datensatzherkunft des Kombinationsfeldes eingetragen.

In der Abfrage ist die Funktion Gruppierung aktiviert. Diese bewirkt, dass im Kombinationsfeld auch mehrfach vorhandene Namen nur einmal angezeigt werden.

Durch das Ereignis Nach Aktualisierung des Kombinationsfeldes wird die Ereignisprozedur Cbo_Suchen AfterUpdate() ausgeführt (s. Quellcode 1).

Zuerst wird auf das Feld Nachname positioniert. Danach wird mit der Find-Methode der im Kombinationsfeld ausgewählte Nachname gesucht.

Ähnlich einfach ist die Ereignisprozedur BtnWeitersuchen_Click() aufgebaut (s. Quellcode 2). Diese wird beim Klick auf die Schaltfläche Weitersuchen ausgeführt.

Falls der Wert des Kombinationsfelds nicht Null ist, wird mit der FindNext-Methode der nächste Datensatz gesucht, der die Kriterien der eben ausgeführten Find-Methode erfüllt.

Datensätze per
Listenfeld suchen

Die Suche nach Datensätzen per Listenfeld läuft ähnlich wie die Suche mittels Kombinationsfeld ab.

Das passende Beispiel finden Sie in der Beispieldatenbank unter dem Namen FrmKontakte 2.

Bedienung der
Suche

Klicken Sie im Listenfeld Namen suchen einfach auf den gesuchten Namen oder tippen Sie stattdessen den Anfangsbuchstaben ein (s. Abb. 2). In beiden Fällen wird der passende Datensatz auch im Formular angezeigt.

Abb. 3: Das Eigenschaftsfenster des Listenfelds LstSuchen

Funktionalität der Suche

Das Listenfeld funktioniert wie folgt: Beim Klicken in das Listenfeld wird die Ereignisprozedur LstSuchen_Click() ausgeführt.

Diese springt im Formular FrmKontakte 2 zum Feld KontakteID. Auch hier wird die Methode Find benutzt, die sich zur Suche die KontakteID aus der erste Spalte des Listenfeldes holt.

Durch die Auslösung des Ereignisses Nach Aktualisierung des Listenfelds wird die Ereignisprozedur LstSuchen_Click() aufgerufen und anschließend der Fokus auf das Listenfeld gesetzt.

Wichtig ist hierbei, dass im Eigenschaftsfenster des Listenfelds der Eintrag [Ereignisprozedur] für das Beim Klicken-Ereignis nicht vorhanden sein darf (s. Abb. 3).

Anderenfalls würde immer das Feld KontakteID des Formulars den Fokus besitzen und es wäre nicht möglich, den gesuchten Namen durch Eingabe eines Buchstabens im Listenfeld auszuwählen.

Damit haben Sie nun zwei einfache und schnelle Methoden kennen gelernt, nach Datensätzen zu suchen.

Natürlich dürfen auch die Nachteile dieser Lösung nicht verschwiegen werden:

  • Das Suchfeld ist fest vorgegeben.
  • Die Verwendung von Vergleichsoperatoren wie beispielsweise Größer als oder Zwischen ist nicht möglich.
  • Es ist nicht möglich, mehrere Suchfelder miteinander zu kombinieren.
  • Die Realisierung derartiger Suchmöglichkeiten zeigt Ihnen das folgende Beispiel.

    Das Formular FrmQbF

    Die Bezeichnung Query by Form kann mit "formularbasierter" oder "formulargestützter" Suche übersetzt werden. Der Sinn einer solchen Suchmethode ist, den Anwender bei der Bildung komplexer Suchkriterien durch eine einfache Benutzeroberfläche zu unterstützen.

    Die Auswahl der Suchfelder und Suchkriterien soll für jedermann intuitiv und ohne größere Vorkenntnisse möglich sein.

    Eine weitere Anforderung an ein solches Suchformular ist, dass es flexibel verwendbar sein sollte. In der Praxis ergeben sich daraus zwei Forderungen:

  • Das QbF sollte innerhalb einer Anwendung ohne großen Änderungsaufwand für unterschiedliche Formulare verwendbar sein.
  • Die gleiche Forderung gilt natürlich auch für die Verwendung des QbF in unterschiedlichen Datenbanken.
  • Grundsätzliche Funktionsweise von Query by Form

    Zum besseren Verständnis zunächst die grundsätzliche Funktionsweise dieser QbF-Lösung:

    Abb. 4: Das Formular FrmQbF

    Das Formular ist ein ungebundenes Formular (s. Abb. 4). Seinem Einsatzzweck entsprechend ist die Eigenschaft Rahmenart auf den Wert Dialog eingestellt.

    Im linken Kombinationsfeld Feldname werden die Suchfelder angezeigt, die im Entwurf der Abfrage qryFeldliste nach Bedarf zusammengestellt werden können.

    Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

    Sind Sie Abonnent?Jetzt einloggen ...
     

    Kompletten Artikel lesen?

    Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

    E-Mail:

    Verwandte Beiträge:

    Globale Suche

    Suchfunktionen von einfach bis komplex

    © 2003-2015 André Minhorst Alle Rechte vorbehalten.