window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Platzhalter in Textdateien füllen

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Texte mit Platzhaltern zu füllen und die Platzhalter dann durch in der Datenbank gespeicherte Daten zu ersetzen ist ein oft benötigter Anwendungsfall. Im Prinzip bildet Word das mit der Seriendokument-Funktion ab: Hier werden im Dokument Verknüpfungen zur Datenquelle hergestellt und dann gefüllt. Wir wollen es eine Nummer kleiner angehen und einfache Text mit entsprechenden formatierten Platzhaltern wie [Vorname] versehen und diese dann nach Bedarf mit den Daten aus der Datenbank füllen.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1701_PlatzhalterInTextenFuellen.accdb.

Textdatei mit Platzhaltern erstellen

Der erste Schritt besteht daraus, eine geeignete Textdatei zu erstellen, die wir mit Platzhaltern versehen. Hier kommt bereits die erste Hürde: Wie sollen die Platzhalter aussehen, damit wir diese später auch zuverlässig finden können Die erste Voraussetzung ist, dass die Namen der Platzhalter mit den Datenfeldern korrelieren. Wenn wir aus einer Tabelle Felder namens Vorname, Nachname und Strasse in die Textdateien füllen wollen, sollten die Platzhalter auch entsprechend benannt werden. Das hat allein praktische Gründe: Wir können so später einfach die Felder der Datenherkunft in einer Schleife durchlaufen und die Werte direkt in die Platzhalter einsetzen.

Die zweite Voraussetzung ist, dass die Platzhalter vom übrigen Text unterschieden werden können. Wenn Sie beispielsweise nur den Namen des betroffenen Feldes als Platzhalter verwenden, ist die Wahrscheinlichkeit gegeben, dass dieser Name auch im eigentlichen Text zum Einsatz kommt.

Also müssen wir die Platzhalter noch mit einer Start- und einer Endmarkierung versehen, die in dieser Art sonst nicht im Text vorkommt. Dazu eignen sich beispielsweise eckige Klammern. [Vorname] wäre also ein geeigneter Platzhalter. Auf Nummer Sicher gehen Sie, wenn Sie die Start- und die Endmarkierung noch ein wenig eindeutiger gestalten, beispielsweise mit @[Vorname@]. Auf diese Weise sollte nichts anbrennen.

Die Vorlage sieht dann beispielsweise wie in Bild 1 aus. Sie enthält einige Platzhalter, die mit @[ beginnen und mit ]@ enden. Nun benötigen wir eine Tabelle beziehungsweise Abfrage, welche die angegebenen Platzhalterbezeichnungen innerhalb der Begrenzungszeichen aufweist. Dazu legen wir eine Tabelle namens tblKunden an, deren Entwurf Sie in Bild 2 finden. Das Feld AnredeID ist ein Fremdschlüsselfeld, das noch mit der Tabelle tblAnreden verknüpft ist.

Entwurf der Tabelle tblKunden

Bild 1: Entwurf der Tabelle tblKunden

Beispielvorlage als Textdatei

Bild 2: Beispielvorlage als Textdatei

tblAnreden enthält die Felder ID (Primärschlüsselfeld) und Bezeichnung sowie zwei Felder mit speziellen Formen der Anrede: AnredeAdresse nimmt die Form der Anrede für den Adressblock auf (Herrn/Frau), AnredeBrief die Anrede für die erste Zeile des Brieftextes (Sehr geehrter Herr/Sehr geehrte Frau) – siehe Bild 3.

Die Tabelle tblAnreden mit einigen Werten

Bild 3: Die Tabelle tblAnreden mit einigen Werten

Abfrage als Quelle für die Platzhalter

Nun benötigen wir noch eine Abfrage, welche die Daten der beiden Tabellen so zusammenführt, dass wir diese in der anschließend zu erstellenden VBA-Prozedur zum Ersetzen der Platzhalter nutzen können. Diese Abfrage soll die beiden Tabellen tblKunden und tblAnreden als Datenherkunft nutzen und alle Felder dieser beiden Tabellen mit Ausnahme des Feldes AnredeID der Tabelle tblKunden und des Feldes ID der Tabelle tblAnreden enthalten. Der Entwurf dieser Abfrage, die wir unter dem Namen qryKundenMitAnrede speichern, sieht wie in Bild 4 aus.

Entwurf der Abfrage qryKundenMitAnrede

Bild 4: Entwurf der Abfrage qryKundenMitAnrede

Das Ergebnis der Abfrage aus Bild 5 liefert alle Daten der Tabelle tblKunden plus die dazugehörigen Anreden aus der Tabelle tblAnreden.

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar