Die Arbeit mit Zeichenketten ist ein elementarer Bestandteil beim Umgang mit Access. Dies reicht vom einfachen Zusammensetzen einzelner Texte zu einer Zeichenkette über das Ermitteln bestimmter Textelemente bis hin zur buchstabenweisen Analyse von Texten. VBA bietet dazu einige Funktionen, die dieser Artikel vorstellt – neben den grundlegenden Techniken unter VBA und an anderen Orten wie Eigenschaften, Abfragen und Steuerelementen.
Beispieldatenbank
Die Beispiele dieses Artikels finden Sie in der Datenbank 1111_Zeichenkettenfunktionen.mdb.
Einsatzzwecke
Die nachfolgend vorgestellten Zeichenkettenfunktionen können Sie wie die anderen bereits vorgestellten Access/VBA-Funktionen in manchen Tabelleneigenschaften, als Werte oder Kriterien in Abfragen oder als Eigenschaften oder Feldinhalte in Formularen, Berichten und Steuerelementen einsetzen. Darüberhinaus treten die nachfolgend vorgestellten Funktionen natürlich in VBA-Routinen in Erscheinung.
Zeichenketten
Zeichenketten kommen entweder als Literal oder beispielsweise als Wert einer Variablen, eines Feldes oder einer Eigenschaft vor. Folgendes könnte eine Zeichenkette liefern:
- “André“: Literal
- “”: Leere Zeichenkette
- strVorname: String-Variable
- Me!txtVorname.Value: Wert eines Textfeldes
- rst!Vorname: Wert eines Feldes eines Recordsets
Während beim Literal, bei einer leeren Zeichenkette und bei einer gefüllten String-Variable keine Gefahr droht, können ein Steuerelement oder ein Feld durchaus den Wert Null enthalten. Dies ist im Gegensatz zur leeren Zeichenkette eigentlich keine Zeichenkette. Wenn Sie im Rahmen des Umgangs mit Zeichenketten auf einen Null-Wert stoßen, müssen Sie damit auf besondere Weise umgehen. Sie können beispielsweise mit einer leeren oder auch mit einer bestimmten anderen Zeichenkette weiterarbeiten, wenn Sie auf den Null-Wert treffen. Manchmal ist der Nullwert auch nützlich, mehr dazu später. Die einfachste Zeichenkettenfunktion ist das Verketten zweier Zeichenketten mit dem Kaufmanns-Und-Operator (&). Bild 1 und Bild 2 zeigen, wie Sie ein Literal und den Wert einer VBA-Funktion für die Eigenschaft Steuerelementinhalt eines Textfeldes eines Formulars (oder wahlweise eines Berichts) eingeben und anzeigen.
Bild 1: Zusammensetzen eines Literals und einer VBA-Funktion
Bild 2: Anzeige einer zusammengesetzten Zeichenkette
Statt in die Eigenschaft Steuerelementinhalt können Sie den Ausdruck in der Entwurfsansicht des Formulars auch gleich in das Textfeld eingeben. In der Formularansicht wird der Ausdruck dann ausgewertet und angezeigt.
Damit Sie gleich sehen, dass dies auch per VBA funktioniert, legen Sie gleich darunter ein weiteres Textfeld namens txtZeichenketteVBA an und erstellen die folgende Ereignisprozedur, die durch das Ereignis Beim Laden des Formulars ausgelöst wird (Eigenschaft Beim Laden auf [Ereignisprozedur] einstellen, auf die Schaltfläche mit den drei Punkten klicken und die nun im VBA-Editor erscheinende Prozedur erweitern):
Private Sub Form_Load() Me!txtZeichenketteVBA = "Duisburg, den " & Date End Sub
Die Prozedur bewirkt das Gleiche wie das Füllen der Eigenschaft Steuerelementinhalt: Es trägt einen Text wie Duisburg, den 3.12.2011 in das Textfeld ein.
Der wichtigste Unterschied zwischen dem Einsatz als Eigenschaft und unter VBA ist, dass Sie bei einer Eigenschaft die deutsche Version der VBA-Funktionen verwenden (manchmal können Sie auch die englische Variante eingeben, diese wird dann übersetzt).
Damit Sie die folgenden Beispiele jeweils schnell ausprobieren können, formulieren wir diese in VBA – Sie geben diese dann testweise in das Direktfenster des VBA-Editors ein (Strg + C) und führen diese durch Betätigen der Eingabetaste aus.
& und +
Gerade eben haben Sie den &-Operator kennengelernt, mit dem Sie zwei Zeichenketten verknüpfen können:
Debug.Print "a" & "b"
ab
Dies gelingt auch mit dem +-Operator:
Debug.Print "a" + "b"
ab
Der wesentliche Unterschied liegt in der Behandlung von Null-Werten. Wenn einer der zu verknüpfenden Ausdrücke den Wert Null hat, behandelt der &-Operator diesen als leere Zeichenkette:
Debug.Print "a" & Null
a
Bei Verwendung des +-Operator wird jedoch der komplette Ausdruck zu Null, wenn einer der Teilausdrücke den Wert Null aufweist:
Debug.Print "a" + Null
Null
Länge von Zeichenketten ermitteln
Die Länge einer Zeichenkette ermitteln Sie mit der Len-Funktion. Sie erwartet lediglich die Zeichenkette als Parameter, die Sie als Literal oder in Form einer Variablen beziehungsweise eines Ausdrucks übergeben können. Beispiel:
Debug.Print Len("abc") 3
In Ausdrücken verwenden Sie die deutsche Version, also beispielsweise =Länge([txtZeichenkette]) (siehe Beispielformular frmZeichenkettenfunktionen).
Teile von Zeichenketten ermitteln
Mit den drei Funktionen Left, Right und Mid können Sie Teilzeichenketten einer Zeichenkette ermitteln:
- Left: Liefert die ersten n Zeichen einer Zeichenkette zurück. Der Aufruf Left(“abc”,2) liefert also beispielsweise die Zeichenkette ab zurück (die ersten beiden Zeichen des Ausdrucks abc).
- Mid: Liefert eine Teilzeichenkette einer Zeichenkette zurück, die nach einer bestimmten Anzahl Zeichen beginnt und eine festgelegte Länge hat. Der Aufruf Mid(“abc”,2,1) liefert also beispielsweise die Teilzeichenkette zurück, die mit dem zweiten Zeichen beginnt und ein Zeichen lang ist – also das Zeichen c.
- Right: Liefert die letzten n Zeichen einer Zeichenkette zurück. Der Aufruf Right(“abc”,2) liefert also beispielsweise die Zeichenkette bc zurück (also die hinteren beiden Zeichen des Ausdrucks abc).
Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access [basics]:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 400 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein: