Hallo Boris, > Am 13.05.21 um 21:39 schrieb Robert Großkopf: > > Die Textdatei braucht zwingend eine Datenbankdatei, damit sie auf > > Daten zugreifen kann. Diese Datei wird im Hintergrund erstellt. Das > > ist dann den meisten Leuten gar nicht bewusst. > > dass es so ist, habe ich schon mitbekommen, nur: warum es so sein > muss, verstehe ich nicht, und auch nicht, wie es im Detail > funktioniert.
In der Kurzversion: Du willst ja auf die Tabellen einer Datenbank zugreifen und hast "nur" eine Calc-Tabelle. Wenn du auf verschiedenartige Daten_quellen_ zugreifen willst, brauchst du einen "Adapter", der deinen Programmen den Zugriff auf eine standardisierte Art bereit stellt. So müssen deine Programme nicht selber wissen, wie man eine Datenquelle anspricht, die reden nur mit dem dafür spezialisierten "Adapter". In LO übernimmt Base diese Funktion. Ich arbeite immer aktiv mit Base und lege mir die benötigte .odb-Datei bewuust manuell an, wenn ich Calc-Dateien als Datenquelle nutzen will/muss. Die Base-Datei bietet zusätzliche Möglichkeiten: So kann ich z.B. Abfragen definieren und damit (virtuell) weitere "Tabellen" als Quelle für z.B. Serienbriefe erzeugen/nutzen. Ein Beispiel: Einen Freundin von mir hat ein Dokument mit zwei Tabellen erstellt. Die Personen in Tabelle "Brief" bekommen regelmäßig einen Info-Brief, die Personen in Tabelle "Paket" bekommen ein Paket mit Prospekten. Leider sind manche Personen in beiden Tabellen, so dass sie deren Adressen bei einer Änderung doppelt pflegen müsste. Zusätzlich wollte sie weitere Kategorien einführen. Nun sind _alle_ Personen in einer Gesamttabelle "Empfänger", die sie in den Seriendrucken auch verwendet. Diese hat jetzt zusätzlich die Spalten "Brief" und "Paket" bekommen. In der zugehörigen .odt-Datei sind zwei Abfragen eingebaut: "Briefe" fischt alle Personen aus der Tabelle, bei denen in der Spalte "Brief" ein "y" hinterlegt ist. "Pakete" arbeitet analog. Bei Seriendrucken kann sie jetzt entweder die Tabelle "Empfänger" oder eine der Abfragen "Pakete" bzw. "Briefe" auswählen, wenn der betreffende Dokumententyp nur für den entsprechenden Empfängerkreis von Interesse ist (Packliste, Paketaufkleber,...). Wenn sie die Tabelle "Empfänger" wählt, kann sie prinzipiell alle Personen anschreiben, kann aber beim Seriendruck auch noch mal eine der Abfragen wählen, falls sie diesen Brief nur eine der Empfängergruppen anschreiben möchte (Portoerhöhung getrennt für Brief/Paket/beide). Dann braucht sie beim Seriendruck auch nicht umständlich die zu druckenden Adressen zu markieren. Der nächste Schritt iun der Evolution: Wir überführen die Calc-Tabelle in eine echte Datenbank, bevor weitere Kriterien hinzukommen. Dann kann man bei den Spalten auch den Typ boolean(=j/n) verwenden, statt nach bestimmten Buchstaben zu filtern. Dazu muss ich letztlich nur die Tabellen der Calc-Datei in eine Datenbank übernehmen und die .odt-Datei entsprechend tauschen. Um das kompakt zu halten, wird das erst einmal eine interne HSQLDB, die in der ODT-Datei eingebettet ist. Es lohnt sich also, diesen Zwischenschritt von Datenquelle (Calc-Datei) über den "Adapter" (Base-Datei) zum Serienbrief bewusst für sich zu nutzen oder zumindest nicht zu ignorieren. Schönes Wochenende, Michael -- ____ / / / / /__/ Michael Höhne / / / / / / mih-hoe...@web.de / ________________________________/ -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy