Serienbrief verliert Link zur Datenquelle

System: Ubuntu 22.04, Libreoffice 7.3.7.2

Ich habe eine Formatvorlage für Serienbriefe in Writer erstellt. Als Datenquelle dient eine xlsx File. Dann mit dieser Vorlage ein Brief erstellt und gespeichert und LO verlassen. Wenn ich jetzt ein neues Dokument erstellen will und die Datenquelle anwähle, kommt immer die Fehlermeldung ‘Die Verbindung zur Datenquelle konnte nicht hergestellt werden’.

Die Detailsmeldung besagt dann ‘file:///…Mitgliederliste.xls’ konnte nicht gefunden werden. Das wundert mich nicht, da der File die Endung xlsx hat - wieso wird das letzte x der Endung unterschlagen?? Zu allem Überfluss kann ich die Quelle nicht löschen und neu einrichten weil LO dann abstürzt und den alten Zustand wieder herstellt.

Ich habe das Problem sowohl wenn ich die Datenquelle aus dem Writer registriere als auch wenn ich die Quelle über Base einrichte. Das Problem schein immer zu sein, dass eine Datenquelle als xlsx registriert wird und nach Speichern / Wiederöffnen dann als xls gesucht wird. Muss ich da irgendwo einen heiligen Haken setzen??

Vielen Dank für Eure Hilfe
Klaus

Edit: Unter tdf#152852 an Bugzilla gemeldet

Das scheint mir doch eher nach einem Fehler auszusehen.
Dieser gehört gemeldet auf Bugzilla.


Allerdings frage ich mich warum Du Deine Daten in XLSX und nicht in ODS speicherst.


Kompatibilitätsproblem?

Faq/Allgemein/118 - The Document Foundation Wiki.


Bitte melde das Verhalten auch als Fehler in Bugzilla .

Siehe auch:

Wie man Fehler in LibreOffice meldet .

Bitte schreibe den Link zum Fehler hier rein.
Format: tdf#nnnnnn (verwende nur die Nummer, nicht den Link)
Bearbeite dazu Deine ursprüngliche Frage. Vielen Dank.

Vielen Dank für die schnelle Rückmeldung. Dann probiere ich mich mal an Bugzilla.

Ich schicke die Liste auch an Leute die mit Excel arbeiten und will keine 2 Versionen.

Ich habe das gerade gestestet und auch in Bugzilla dazu geschrieben. Kann das hier nicht feststellen, dass der Datenbankkontakt verloren geht.

@K62 : Gib am besten noch genau an, welche Version von LO Du benutzt. Da gibt es gerade im Datenbankbereich immer wieder Unterschiede zwischen den Versionen, die die Linuxdistributionen selbst packen, und den Originalversion von LibreOffice selbst. Die Originalversion sind an einer sehr langen BuildID erkennbar, bei mir hier z.B.

Version: 7.4.3.2 / LibreOffice Community
Build ID: 1048a8393ae2eeec98dff31b5c133c5f1d08b890
CPU threads: 6; OS: Linux 5.3; UI render: default; VCL: kf5 (cairo+xcb)
Locale: de-DE (de_DE.UTF-8); UI: de-DE
Calc: threaded

Die folgende Vorgehensweise erneuert die Datenquelle und belässt die Dokumentenvorlage weitgehend wie sie ist. Du kannst jedenfalls die Serienbrief-Felder belassen wo sie sind.

  1. Writer-Vorlage zum Bearbeiten öffnen.
  2. Ansicht>Feldbefehl (Strg+F9) zeigt sowas wie <Datenbankname.Tabellename.Spaltenname> für jedes Datenbankfeld.
    Notiere die 2 Namen für Datenbank und Tabelle und alle Spaltennamen
  3. menu:Ansicht>Datenquellen (Strg+Umsch+F4).
    Doppel-Klick auf den Datenbanknamen (falls existent). Schlägt das Öffnen fehl, lösche die Datenquelle und erstelle eine neue mit den folgenden 5 Schritten.
  4. Rechts-Klick>Datenbankdatei bearbeiten…
    Die Datenbankdatei existiert nicht:
    1.1 Rechts-click Datenquellenname>Registrierte Datenbanken … und lösche die schlechte Quelle.
    1.2. menu:Datei>New>Datenbank
    1.3. Verbinde mit existierender Datenbank, Typ: Tabellenkalkulation (Spreadsheet)
    1.4. Verweise auf Dein Spreadsheet (ods, xls, xlsx) und markiere “Datenbank registrieren”
    1.5. Speichere die Datenbank.
    Ansonsten (wenn die Datenbank existiert), Rechts-klick>Datenbankdatei bearbeiten…
    Die Datenbankdatei existiert und wird geöffnet, aber es können keine Tabellen angezeigt werden:
    1.1. Menü:Bearbeiten>Datenbank>Eigenschaften… und verweise auf das richtige Spreadseheet
    1.2. Speichere die Datenbank.
    In beiden Fällen wurde NICHTS kopiert, konvertiert oder verschoben. Deine Daten sind immer in dem Spreadsheet.

Öffne die korrekte Tabelle mit den Serienbriefdaten, egal wie sie heißt.

Hat die Tabelle den Tabellennamen aus Schritt 2?
Existieren alle Spaltennamen des Serienbriefes in der Tabelle?
Falls irgendwas davon nicht existiert, folgende 5 Schritte:

  1. menu:Einfügen>Abfrage (Entwurfsansicht)
  2. Wähle die Tabelle mit den Daten.
  3. Doppel-Klick die Spalten, die für den Serienbrief erforderlich sind.
  4. Bei allen Spaltennamen, die vom Serienbrief abweichen, setze die richtigen Namen als Alias ein.
  5. Wenn alle Spalten mit den richtigen Namen oder Aliasnamen drin sind (Reihenfolge egal) peichere die Abfrage und dann auch das Datenbank-Dokument.

Zurück zur Serienbrief-Vorlage:
menu::Bearbeiten>Datenbank austauschen…
Wähle die korrekte Datenbank und die korrekte Abfrage oder Tabelle mit den korrekten Spaltennamen.

Wenn Du nun wieder mal irgendwas an den Spreadsheets geändert hast oder ein vollkommen anderes Tabellendokument verwenden willst:

  1. Datenbankdatei öffnen
  2. Bearbeiten>Datenbank>Eigenschaften… und die Spreadheet-Datei festlegen
  3. Die Abfrage anpassen oder löschen und neu machen, so dass die richtigen Spaltennamen in der richtig benannten Abfrage vorkommen (Reihenfolge der Spalten ist egal).

Hinweis: Tabellenkalkulationen sind die denkbar schlechtesten Datenquellen. Selbst die einfachste echte Datenbank hat vielerlei Vorteile, z.B. kann man die Serienbriefdaten im Datenquellen-Fenster bearbeiten.

  1. Öffne das Tabellendokument und aktiviere das Blatt mit den Serienbriefdaten.
  2. Datei>Speichern unter… Dateityp: "dBase (*.dbf) und speicher das aktuelle Blatt als dBase-Datei.
  3. Öffne Dein Datenbankdokument
  4. Bearbeiten>Datenbank>Verbindungsart…
    4.1. Wechsle von Tabellendokument zu dBase, click [Weiter]
    4.2. Gib den Ordner an, wo die dbf-Datei gespeichert wurde, nicht die Datei selbst. Jede dbf-Datei im selben Ordner wird als eine Tabelle derselben Datenbank dargestellt.
  5. Stelle die Verbindung her und teste Deine Abfrage.
  6. Speichere die Datenbankdatei.

Die Daten sind direkt in Writers Datenquellen-Fenster zu bearbeiten. Änderungen werden sofort im Serienbrief umgesetzt.

1 Like

Erstmal vielen Dank für die umfangreiche Anleitung.
In der Tat habe ich es jetzt mit einem neuen writer Dokument (die xlsx Datei ist noch dieselbe) nochmal ganz von vorne aufgebaut und mich strikt an die Anleitung gehalten und jetzt funktioniert es.
Ich habe noch nie mit base gearbeitet aber schaue mir das gerade an - das ist sehr interessant. Ich muss halt die Daten oft mit Leuten austauschen, die mit Excel arbeiten und die Frage ist ob ich mir dann den Import/Export nicht auch wieder irgend etwas einfange. ABer erstmal funktioniert es so und dafür nochmals vielen Dank

Vielen Dank für die Unterstützung. Hier sind die Infos zum Build:
Version: 7.3.7.2 / LibreOffice Community
Build ID: 30(Build:2)
CPU threads: 24; OS: Linux 5.15; UI render: default; VCL: kf5 (cairo+xcb)
Locale: de-DE (de_DE.UTF-8); UI: de-DE
Ubuntu package version: 1:7.3.7-0ubuntu0.22.04.1
Calc: threaded

Ich habe das jetzt auf einem anderen System mit Ubuntu 22.04 und der gleichen Version gestestet. Unterschied lediglich VCL:gtk3.

Ich habe die Tabellenkalkulationsdatei erstellt und als xlsx abgespeichert. Dann die Datenbankdatei erstellt und einen Serienbrief erstellt. Alles abgespeichert, LO geschlossen und anschließend wieder neu geöffnet. Auch da bleibt der Kontakt bestehen.

Hast Du vielleicht vorher einmal statt xlsx eine xls-Datei mit einer Datenbankdatei verbunden und angemeldet gehabt? Schau doch einmal unter Extras → Optionen → LibreOffice → LibreOffice Base → Datenbanken nach, welche Datenbanken da denn angemeldet sind. Und dann öffne einmal die Datenbank, die eigentlich mit der xslx-Datei verbunden sein soll. Da kannst Du ja über Bearbeiten → Datenbank → Eigenschaften die Verbindunbg neu einstellen, wenn es denn erforderlich sein sollte.

Nutzer wissen in der Regel nicht, dass 3 Dateien beteiligt sind ods->odb->odt. Sie löschen die odb, verschieben das ods, benennen das Tabellenblatt um, kopieren neue Daten mit anderen Spaltennamen in die ods. Das Dateiformat der Tabellenkalkultion ist meist komplett egal weil es ja einfach nur text in Spalten ist.

Zumindest bewust hatte ich nie eine xls Datei eingebunden. Habe gerade im Menu nachgeschaut - da ist nur eine Datei eingebunden, und das ist die Korrekte .xlsx