Serienbrief - steuernde Datenbank- oder calc-Tabelle - Spaltenname mit Leerstelle?

Wie ein Serienbrief mit steuernden Datenfeldern funktioniert weiß und kann ich.

Aber es stellte sich die Frage, wie man für denselben Zweck Tabellenspaltennamen, die eine Leerstelle im Spaltennamen haben, verwenden könnte.

Ich habe mit mehreren Klammerarten experimentiert, aber bisher konnte ich dem Fragenden keine Lösung anbieten.

1 Like

Wovon redest Du? Was für Klammern? Was sind “steuernde Datenfelder”?
Wo liegt das Problem mit Leerzeichen in Spaltennamen? Egal, wo dieses Problem liegt, nutze einfach eine Abfrage mit Aliasnamen.

Es geht um einen (Beispiel-)Serienbrief. In dem kann man mit Zugriff auf eine Tabelle (egal ob man direkt mit einer Calc-Tabelle oder eine Tabelle in einer Datenbank verwendet) auf deren Daten zugreifen und damit “bedingte Texte” steuern. Die Bedingung lautet z.B. lautet dann “Feldname EQ 1” , dann “Herrn” oder “” oder ähnlich.

Das Problem ist dann, dass der “Feldname” ein durchgehender Text sein muß, z.B. “Anrede” (natürlich ohne Anführungsstriche). Dieser Feldname befindet sich in der Regel in der 1. Zeile in der calc-Tabelle als Spalten"name" oder als Spaltenkopf in der Tabelle der Datenbank.
Man kann viele Namen sich vorstellen, Anrede, Vorname, Familienname usw.

Aber wenn man anstelle “Code” “Co de” oder anstelle “Vorname” “Vor Name” als Bezeichnung vergibt, was technisch ja geht, wird man enttäuscht. Der Serienbrief kann auf solche Feldnamen nicht zugreifen. Es kommt aber auch keine Fehlermeldung.

Wenn es hier unter ask die Möglichkeit gibt, Beispieldateien hochzuladen, dann kann ich ein Paar (Tabelle und Serienbrief) zum Experimentieren bieten.

Mit Klammern meinte ich statt
Co de EQ 1 z.B. [Co de] EQ 1 oder den Feldnamen in runde oder geschweifte Klammern, aber auch ‘Co de’ oder “Co de” , sie alle gehen nicht.

Egal ob Datenbank oder Tabellendokument, Deine Quelle ist immer ein Datenbankdokument.
[Echte Datenbank | Tabellendokument | Textdokument] —> [Datenbankdokument] —> Serienbrief
Du findest das Datenbankdokument im Datenquellenfenster. Rechts-klick>Datenbank bearbeiten…
In der Statusleiste am unteren Rand siehst Du womit das Dokument verbunden ist.
Dann erstellst Du eine Abfrage wie:

SELECT "Vor Name" AS "Vorname", "Nach Name" AS "Nachname", "Post Leitzahl" AS "PLZ" 
FROM "Tabelle"

oder so ähnlich. Geht auch im Abfrage-“Designer”. EInfach Tabelle auswählen, Spalten auswählen und Aliasnamen eingeben. Du kannst auch recht einfach sortieren und filtern und nicht benötigte Tabellenspalten weglassen.
Dann verwendest Du die Abfrage anstelle der Tabelle und alles wird gut.
Ich würde auch lieber die Datenbankspache SQL für konditionale Ausdrücke verwenden oder auch Calc-Formeln wenn das Datenbankdokument mit einer Tabellenkalkulation verbunden ist.

Ja, mit “alias” in einer Abfrage aus einer Datenbank geht es prompt! Das ist stimmig.
Aber mit einer calc-Tabelle, mit der man unter meinem System win7prof und LO-Version 7.2.1.2.(x64) durchaus direkt einen Serienbrief speisen kann, habe (auch) ich keine Lösung gefunden.
Und eine Sache ist für die “Klugscheißer” wie mich irritierend, nämlich egal welche Variante ich wähle, im writer-Dokument muß ich als Datenquelle nicht nur den Quellenamen angeben, sondern darunter “Tabelle1”, obwohl die Tabelle und die Abfrage in der DB einen jeweilig differenten Namen haben.
Fazit : Über den Umweg über eine Datenbank und dann eine Abfrage mit alias kann eine Lösung erreicht werden.

Danke Villeroy!!!

Nochmal: JEDER Serienbrief verwendet ein Datenbankdokument als Quelle. Auch wenn Du im Serienbriefassistenten ein Calc-Dokument als Quelle angibst, wird immer auch ein Datenbankdokument erzeugt, das mit dem Calc-Dokument verbunden ist.
Der Haken mit Calc-Quellen: Du kannst die Daten nicht ändern, ohne die ganze Office-Suite neu zu starten. Erst dann erscheinen die geänderten Daten auch im Datenbank-Kontext.
Das einzig gute an Calc-Quellen: Du kannst ziemlich beliebig Daten aus allen möglichen Webseiten, Dateien und Datebanken zusammenkopieren und diese dann frei herumbewegen bis sie eine gültige Tabelle in einer Pseudo-Datenbank ergeben. Ansonsten ist Calc als Quelle unterirdisch aber “natürlich” meist benutzt.
Die wichtigste Alternative zu Calc-Listen: dBase. Damit klappt es auch mit dem Bearbeiten im Datenquellen-Fenster, im Datenbankdokument und in Formularen. Filtern aus hundertausenden Zeilen ist auch kein Problem weil dBase Indizes unterstützt. Man kann einzelne Calc-Bläter als dBase abspeichern.

Datenbankabfrage mit alias ist eine Lösung für das Problem gespaltener Spalten- bzw. Feldnamen.

Aliasnamen lösen auch noch ein anderes Problem. Wenn Du Serienbriefe (oder Etiketten, Aufkleber, Laufzettel etc.) aus wechselnden Quellen erstellst, dann kann in jeder Quelle eine simple Abfrage erstellt werden, die die erforderlichen Spalten mit den richtigen Spaltennamen wiedergibt.
Im Serienbrief muss dann nur die Datenquelle geändert werden (Bearbeiten>Datenbank austauschen…), und die Spaltennamen bleiben passend. Für den Endnutzer ist es dann völlig egal, ob da ein Calc-Dokument, dBase, csv oder eine echte Datenbank dahinter steckt.