Textfunktionen mit und ohne reguläre Ausdrücke

André Minhorst, Duisburg

Die Arbeit mit Texten kann vielfältig sein. Dazu gehört das Durchsuchen von Zeichenketten nach anderen Zeichenketten, das Ersetzen von Zeichenketten durch andere Zeichenketten, Zerlegen von Zeichenketten und so weiter. Eine weitere wichtige Funktion ist das überprüfen von Zeichenketten auf bestimmte Merkmale. Im vorliegenden Beitrag erfahren Sie, wie diese Aufgaben mit und ohne Anwendung von regulären Ausdrücken erledigt werden können.

Das Untersuchen, Suchen und Ersetzen von bestimmten Elementen einer Zeichenfolge durch andere Zeichen wird meistens beim Import oder Export von Daten und der damit verbundenen Anpassung an das andere Format notwendig.

Access bietet hierzu einige Standardfunktionen an, mit denen sich alle gewünschten Aufgaben mit mehr oder weniger Aufwand erledigen lassen.

Für bestimmte Aufgaben gibt es aber auch spezielle Bibliotheken, die Funktionen zur Verfügung stellen, die man sonst mühevoll programmieren müsste.

Eine dieser Bibliotheken heißt Microsoft VBScript Regular Expressions und stellt so genannte reguläre Ausdrücke zur Verfügung. Diese Bibliothek enthält mächtige Werkzeuge zum Suchen und Ersetzen.

VBA bietet einige Möglichkeiten zur Manipulation von Zeichenketten. Wichtig dafür sind vor allem die vorhandenen Zeichenkettenfunktionen und die Vergleichsoperatoren, die nachfolgend vorgestellt werden.

Textfunktionen

VBA stellt einige Funktionen für die Arbeit mit Zeichenketten zur Verfügung. Die wichtigsten sind mit den gebräuchlichen Parametern inTab. 1 aufgelistet. Einige enthalten weitere Parameter. Für genauere Informationen konsultieren Sie die Onlinehilfe.

Vergleichsoperatoren

Neben den Textfunktionen, die größtenteils der eigentlichen Bearbeitung dienen, sind Vergleichsoperationen ein wichtiger Bestandteil bei der Anwendung der Textfunktionen. In Tab. 2 finden Sie eine Auflistung der gebräuchlichen Vergleichsoperatoren.

Platzhalter

Beim Like-Operator können im rechten Teil des Ausdrucks Platzhalter verwendet werden. Es gibt zwei Platzhalter: das Sternchen (*) und das Fragezeichen (). Das Sternchen steht für Null bis beliebig viele Zeichen, das Fragezeichen für genau ein beliebiges Zeichen. Der folgende Ausdruck ergibt beispielsweise den Rückgabewert True:

"info@access-im-unternehmen.de" Like "*@*.*"

Funktion

Beschreibung

Len(str)

Ermittelt die Anzahl der Zeichen einer Zeichenkette str.

Left(str,n)

Gibt die ersten n Zeichen der Zeichenkette str zurück.

Right(str,n)

Gibt die letzten n Zeichen einer Zeichenkette str zurück.

Mid(str,m,n)

Gibt die Teilzeichenkette vom mten bis zum (m+n)ten Zeichen zurück.

Instr(n, str1, str2)

Gibt die Position zurück, an der sich die Zeichenkette str2 innerhalb der Zeichenkette str1 ab der nten Stelle befindet (0 bei keinem Auftreten).

Replace(str1, str2, str3)

Ersetzt die Zeichenkette str2 innerhalb der Zeichenkette str1 durch str3.

Trim(str)

Schneidet alle Leerzeichen am Anfang und am Ende von str ab.

Chr(x)

Gibt das dem ASCII-Code x entsprechende Zeichen zurück.

Asc(str)

Gibt den ASCII-Code für das erste Zeichen in str zurück.

Tab. 1: Zeichenkettenfunktionen von VBA

Vergleichs-operator

Beschreibung

=

Gleich. Gibt True zurück, wenn Zeichenfolgen exakt gleich sind.

<, <=, >=, >

Vergleicht Zeichenfolgen nach dem Wert der Asc-Funktion (Beispiel: Asc(“a”) = 97, Asc(“b”) = 98, also würde “a<b” True zurückgeben.

<>

Ungleich.

Like

Wie ”=”, allerdings unter Verwendung von Platzhaltern.

Tab. 2: Vergleichsoperatoren von VBA

Ausdrücke wie dieser können beispielsweise zur Validierung von Werten – wie hier einer E-Mail-Adresse – verwendet werden.

Textfunktionen + Vergleichsoperatoren + Platzhalter + VBA =

Mit den genannten Werkzeugen lassen sich mit den unter VBA vorhandenen Konstruktionen wie For Next-, Do While- und anderen Schleifen die meisten Aufgaben mit mehr oder weniger Aufwand erledigen.

Mit der seit Access 2000 verfügbaren Funktion Replace lassen sich sogar in einem Rutsch mehrere Vorkommen einer Zeichenfolge durch eine andere ersetzen. Leider lassen sich innerhalb dieser Funktion keine Platzhalter verwenden, was deren Flexibilität enorm einschränkt.

… und was VBA noch fehlt

Wer zeit seines Lebens mit VBA gearbeitet hat, wird möglicherweise gar nicht viel vermissen, da er es gewohnt ist, aus den wenigen Grundfunktionen eigene Funktionen zusammenzustellen, die alle gewünschten Aufgaben erledigen.

Wer allerdings einmal einen Blick auf andere Programmiersprachen wie Java, Javascript oder PHP geworfen hat, mag in Anbetracht der vielen vorgefertigten Funktionen neidisch geworden sein.

Wie die beiden letzten Abschnitte andeuten, scheint die Definition dessen, welche Fähigkeiten VBA in Bezug auf das Thema des vorliegenden Beitrags nicht hat, aber haben sollte, schwierig zu sein.

Die im folgenden Kapitel vorgestellten regulären Ausdrücke und die damit verbundene Objektbibliothek sollten aber auf jeden Fall zum Schließen dieser Lücke beitragen.

Ein regulärer Ausdruck ist nichts anderes als ein Suchmuster, um übereinstimmende Muster in einer Eingabe zu finden.

Weiter oben haben Sie bereits die in Zusammenhang mit dem Like-Befehl zur Verfügung stehenden Platzhalter wie das Sternchen und das Fragezeichen kennen gelernt.

Reguläre Ausdrücke bieten nicht nur Platzhalter für eines oder mehrere Zeichen, sie sind noch wesentlich mächtiger.

Einsatzgebiete von regulären Ausdrücken

Die Verwendung regulärer Ausdrücke erweitert die Möglichkeiten von VBA um einige wichtige Punkte. Als Einsatzgebiete bieten sich beispielsweise die in den beiden folgenden Abschnitten beschriebenen an.

überprüfung eingehender Daten

Der Export von Daten externer Datenquellen birgt viele Fehlerquellen in sich, da die Datentypen der zu importierenden Daten nicht mit den Zieldatentypen übereinstimmen. Mit regulären Ausdrücken können Sie das Format der eingehenden Daten prüfen.

Eingabevalidierung

Viele Datenfelder erwarten Eingaben in speziellen Formaten. Dazu gehören Internetadressen, E-Mail-Adressen, Telefonnummern, Autokennzeichen und so weiter. Sie können zwar in Formularen ein entsprechendes Eingabeformat festlegen, aber Sie stellen dem durchschnittlichen Benutzer damit ein sehr ungewohntes Eingabeelement zur Verfügung.

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

TestzugangOder bist Du bereits Abonnent? Dann logge Dich gleich hier ein. Die Zugangsdaten findest Du entweder in der aktuellen Print-Ausgabe auf Seite U2 oder beim Online-Abo in der E-Mail, die Du als Abonnent regelmäßig erhältst:

Schreibe einen Kommentar