Suche in Lookupfeldern

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Die Suche nach Datensätzen mit bestimmten Werten in Text- oder Zahlenfeldern haben wir in Acces [basics] bereits bearbeitet. Aber was ist, wenn es um Kombinationsfelder geht, welche die Daten aus einer Lookup-Tabelle anzeigen So wie im einfachsten Fall bei den Anreden einer Kundentabelle Dann werden Sie in der Regel erstmal nicht an die Eingabe eines Suchetextes denken, sondern dem Benutzer die Möglichkeit geben wollen, den gesuchten Datensatz auch im Suchfeld per Kombinationsfeld auszuwählen. Dieser Artikel zeigt, wie das gelingt.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1706_Lookupsuche.accdb.

Artikel nach Kategorie durchsuchen

Die Datenblattansicht von Access bietet seit einigen Access-Versionen die Möglichkeit, über den Pfeil nach unten ein Menü zu öffnen, mit dem Sie alle Einträge des aktuellen Feldes anhaken und damit die Suche nach Datensätzen mit diesem Inhalt im entsprechenden Feld starten können (siehe Bild 1).

Eingebaute Suche nach einem Eintrag

Bild 1: Eingebaute Suche nach einem Eintrag

Das Ergebnis entspricht dann wie in Bild 2 genau den Erwartungen. Was aber nun, wenn wir diese Suche nicht anbieten können oder wollen und eine eigene Suche implementieren müssen, die so ähnlich arbeitet – und in diesem Fall zumindest ein Kombinationsfeld anbieten soll, um die passenden Datensätze zu ermitteln

Suchergebnis mit eingebauter Suche

Bild 2: Suchergebnis mit eingebauter Suche

Dann benötigen wir zunächst ein Formular, welches das Datenblatt mit den zu durchsuchenden Datensätzen in einem Unterformular anzeigt. Dazu erstellen Sie zunächst ein Unterformular namens sfmLookupsuche und weisen der Eigenschaft Datenherkunft die Tabelle tblArtikel zu.

Ziehen Sie dann alle Felder dieser Tabelle aus der Feldliste in den Detailbereich des Formularentwurfs und stellen Sie noch die Eigenschaft Standardansicht auf den Wert Datenblatt ein. Speichern und schließen Sie das Formular nun.

Legen Sie ein neues Formulars namens frmLookupsuche an, welches als Hauptformular dienen soll. Ziehen Sie das Unterformular sfmLookupsuche aus dem Navigationsbereich in den Detailbereich des neuen Formulars. Stellen Sie die Eigenschaften Navigationsschaltflächen, Datensatzmarkierer, Bildlaufleisten und Trennlinien des Hauptformulars auf Nein und die Eigenschaft Automatisch zentrieren auf Ja ein. Fügen Sie über dem Unterformular schließlich noch das Kombinationsfeld hinzu, mit dem wir die Suchbegriffe festlegen wollen (siehe Bild 3). Das Kombinationsfeld nennen wir cboSucheLieferant.

Suchformular mit Kombinationsfeld

Bild 3: Suchformular mit Kombinationsfeld

Filterausdruck ermitteln

Wenn Sie wissen wollen, welchen Filterausdruck Access automatisch einstellt, wenn Sie mit der eingebauten Filtermöglichkeit arbeiten wollen, welche wir eingangs vorgestellt haben, brauchen Sie nur das Formular zu öffnen und den Filter festzulegen.

Nun öffnen Sie den VBA-Editor und geben im Direktbereich einen Ausdruck ein, der den aktuellen Wert der Filter-Eigenschaft des Unterformulars ausgibt:

 Forms(0).sfmLookupsuche.form.filter

Die Ausgabe lautet wie folgt:

([Lookup_LieferantID].[Firma]="Bigfoot Breweries")

Was ist nun [Lookup_LieferantID].[Firma] für ein Ausdruck Wir konnten es nicht herausfinden. Selbst wenn wir den Code des Formulars mit der folgenden Methode in eine Textdatei exportiert haben, konnten wir diese Zeichenfolge nicht finden:

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar