Schnellsuche mit Verzögerung

Wenn Sie ein Abonnement des Magazins 'Access im Unternehmen' besitzen, können Sie sich anmelden und den kompletten Artikel lesen.
Anderenfalls können Sie das Abonnement hier im Shop erwerben.

Schnellsuche mit Verzögerung

Eine Schnellsuche ist eine tolle Sache: Sie geben Buchstabe für Buchstabe ein und erhalten direkt nach der Eingabe das passende Suchergebnis. Dummerweise kann es je nach Datenherkunft und Backend auch einmal etwas länger dauern beziehungsweise performancemindernd sein, wenn Sie allzu oft neue Abfragen absenden. Doch es gibt einen feinen Kompromiss: Eine Schnellsuche, die nicht direkt nach der Eingabe eines Buchstabens das neue Suchergebnis präsentiert, sondern die erst nach einem gewissen Zeitraum ohne neue Eingabe neue Daten lädt.

Beispieldatenbank

Unser Versuchsaufbau für diese kleine Lösung sieht im Entwurf wie in Bild 1 aus. Wir haben dort zwei Textfelder angelegt, von denen das eine txtSchnellsuche heißt und die übliche Schnellsuche abbilden soll. Darunter finden Sie das Textfeld txtSchnellsucheMitVerzoegerung, das unsere angepasste Variante liefert.

Formular mit Textfeldern für die Schnellsuche und die Schnellsuche mit Verzögerung

Bild 1: Formular mit Textfeldern für die Schnellsuche und die Schnellsuche mit Verzögerung

Das Listenfeld lstKunden darunter verwendet als Datensatzherkunft die folgende Abfrage:

SELECT tblKunden.KundeID, tblKunden.Firma 
FROM tblKunden 
ORDER BY tblKunden.Firma;

Die Eigenschaft Spaltenanzahl stellen wir auf den Wert 2 und die Eigenschaft Spaltenbreiten auf den Wert 0cm ein, damit nur die Spalte mit dem Feld Firma angezeigt wird.

Herkömmliche Schnellsuche

Die einfache Schnellsuche, bei der das Suchergebnis mit der Eingabe jedes einzelnen Zeichens aktualisiert wird, sieht in der Formularansicht etwa wie in Bild 2 aus.

Einfache Schnellsuche im Einsatz

Bild 2: Einfache Schnellsuche im Einsatz

Um dies zu realisieren, hinterlegen Sie für die Ereigniseigenschaft Bei Änderung des Textfeldes txtSuchbegriff die Prozedur aus Listing 1.

Dies war die Leseprobe dieses Artikels.
Melden Sie sich an, um auf den vollständigen Artikel zuzugreifen.

Bitte geben Sie die Zeichenfolge in das nachfolgende Textfeld ein

Die mit einem * markierten Felder sind Pflichtfelder.

Ich habe die Datenschutzbestimmungen zur Kenntnis genommen.