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 1/2012.

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

Zusammenfassung

Erweitern Sie das Textfeld zur Schnellsuche um die Möglichkeit, Leerzeichen einzugeben.

Techniken

Formulare, Klassen, VBA

Voraussetzungen

Access 2000 und höher

Beispieldateien

SchnellsucheOptimiert.mdb

Shortlink

www.access-im-unternehmen.de/814

Schnellsuche optimiert

André Minhorst, Duisburg

Im Beitrag Schnellsuche mit Klasse (www.access-im-unternehmen.de/784) haben wir die grundlegende Technik zur Schnellsuche und eine Klasse vorgestellt, mit der sich diese Technik mit wenigen Zeilen in Formulare integrieren lässt. Diese Technik hatte allerdings einen Haken: Sie erlaubt nicht die Eingabe von Leerzeichen am Beginn oder Ende des Suchbegriffs. Dies rüsten wir mit diesem Beitrag nach.

Die grundlegende Technik der Schnellsuche basiert darauf, den Filter für das entsprechende Unterformular oder Listenfeld nach jeder Änderung des Suchbegriffs, also nach der Eingabe eines jeden Zeichens, zu erneuern. Dies brachte den Nachteil mit sich, dass auch das Textfeld zur Eingabe des Suchausdrucks aktualisiert wurde. Access hat aber die Angewohnheit, folgende Leerzeichen beim Aktualisieren von Textfeldern zu löschen - das ist ungünstig, wenn man einen Ausdruck wie Aniseed Syrup eingeben möchte: Nach Eingabe des Leerzeichens wird dieses gelöscht und die weitere Eingabe führt zu einem Suchbegriff wie AniseedSyrup. Darunter findet Access dann natürlich keinen passenden Eintrag, was beim Benutzer zunächst für Verwirrung sorgen dürfte. Es gibt einen Workaround, bei dem man erst die Begriffe eingibt und dann das Leerzeichen zwischen den einzelnen Elementen hinzufügt. Das ist aber auch maximal für im Eigengebrauch befindliche Datenbanken empfehlenswert; andere Benutzer dürften kaum auf diesen Trick kommen geschweige denn mit dieser nicht gerade ergonomischen Lösung zufrieden sein.

Abhilfe schafft das Anpassen der Ereignisprozedur Bei Änderung (s. Listing 1). Diese Prozedur prüft am Ende, also nach dem Aktualisieren des Filters, ob sich ganz rechts im Suchstring ein Leerzeichen befindet. Ist dies der Fall, soll das Suchfeld den in der Variablen strSearch zwischengespeicherten Wert erhalten. Wichtig ist, dass dieser als Wert (expliziert müsste man hier Me!txtSuche!Value einstellen) und nicht für die Eigenschaft Text angegeben wird. Das Einstellen der Eigenschaft Text auf einen neuen Wert würde lediglich die Prozedur Bei Änderung erneut auslösen, was in diesem Fall zum endlosen Aufrufen dieser Prozedur führen würde. Sie müssten dann extra eine Variable anlegen, in der Sie speichern, ob der Inhalt des Suchfeldes soeben neu gesetzt wurde, weil dieser ein Leerzeichen enthielt - etwas viel Aufwand für ein Leerzeichen. Bei der hier vorgestellten Lösung brauchen Sie als zusätzlichen Schritt lediglich noch die Einfügemarke auf der zuvor in der Variablen intStart gespeicherten Position zu platzieren. Dann gelingt auch die Eingabe von Leerzeichen im Suchbegriff wie in Abb. 1.

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:

© 2003-2015 André Minhorst Alle Rechte vorbehalten.