Tipp 4.11 - Das Geheimnis der Stringverkettung
Wie kann ich mehrere Textfelder korrekt miteinander verketten?
Wenn Sie in einem Formular, Bericht oder einer Abfrage den Inhalt von mehreren Tabellenfeldern vom Datentyp Text verketten wollen, bietet Ihnen Access die Möglichkeit, den &-Operator einzusetzen.
Nehmen wir einmal an, Sie wollen in einem Kombinationsfeld eine Namensliste anzeigen lassen. Die Informationen [Nachname] und [Vorname] liegen in getrennten Feldern in der Tabelle [Personal] vor. Natürlich könnten Sie eine Abfrage mit zwei Spalten erstellen und der Eigenschaft [Datensatzherkunft] im Kombinationsfeld zuordnen. Diese Einstellung zeigt Ihnen nach der Auswahl eines Eintrages allerdings nur die erste sichtbare Spalte an. Bei einer sehr großen Adressliste ist der Nachname meist nicht besonders aussagekräftig. Die Kombination Nachname, Vorname und Ort könnte oft hilfreicher sein. Die herkömmliche Art, diese Zeichenkette zu verknüpfen ist:
Ausdruck: [Nachname] & ", " & [Vorname] & " - " & [Ort]
Das setzt jedoch voraus, dass die Tabellenfelder alle ordentlich gefüllt sind, sonst gib es den Nebeneffekt, dass zum Beispiel ein Komma oder ein Bindestrick hintereinander stehen, weil ein Eintrag fehlt. Excel Anwender werden in diesem Fall sofort zur WENN-Funktion greifen und eine komplizierte Kontrollstruktur erstellen, das diesen Fall abfängt
. Doch unter Access gibt es einen kleinen Trick: Man setzt einfach den Plus-Operator (+) ein
. Damit würde z.B. obiger Ausdruck folgendermaßen aussehen:
Ausdruck: [Nachname] & (", "+ [Vorname]) & (" - "+ [Ort])Der Plus-Operator funktioniert auch bei Zeichenketten, mit dem Unterschied, dass der Zustand NULL nicht zu anderen Zeichenketten „addiert“ werden kann. Irgendetwas plus NULL ergibt wieder NULL. Und ein Feld ohne Eintrag (vorausgesetzt die AllowZeroLength-Eigenschaft – Leere Zeichenfolge steht auf NEIN) hat den Zustand NULL. Das bewirkt für dieses Beispiel, dass die Ausdrücke in den Klammern nur verkettet werden, wenn ein Eintrag im Feld vorliegt.