none
WORD Serienbrief Datensätze in einem Dokument mehrfach verarbeiten RRS feed

  • Frage

  • ich habe öfter den Bedarf, in einem Schreiben ein Vielzahl von Personen mit den üblichen Daten (Anrede, Vorname, Nachname, Adresse usw., ggf. Position) zu listen. Wie macht man das mit der Serienbrieffunktion? Regulär arbeitet die Serienbrieffunktion ja so, dass ein Schreiben mit einem Datensatz ausgedruckt wird, danach das nächste Schreiben mit dem nächsten Datensatz.
    Ich möchte aber nur ein Schreiben drucken, in dem z.B. 100 Personen im ersten Teil mit Name und Adresse gelistet werden, weiter hinten im Schreiben werden diese 100 Personen erneut gelistet, diesmal z.B. mit ihrer Position.
    Am Liebsten würde ich das natürlich ohne VBA machen, also nur mit den "Standard-Bordmitteln" von Word.
    Hat jemand dazu eine Idee?
    Danke im Voraus!
    Mittwoch, 25. März 2009 09:57

Antworten

  • Du kannst mehrere Datensätze in einem Schreiben unterbringen, indem Du das «Nächster Datensatz»-Seriendruck-Regelfeld verwendest. Mit «Nächster Datensatz Wenn» kannst Du das Einfügen eines Datensatzes von Bedingungen abhängig machen. So könntest Du etwa, wenn Du z.B. nie mehr als 100 (oder 1.000) Datensätze erwartest, insgesamt 100-malig (oder 1.000-malig) die Daten ausgeben lassen unter der Bedingung, dass etwa ein garantiert immer belegtes Feld nicht leer ist - so vermeidest Du überschüssige Leerzeilen, die ohne die Wenn-Bedingung auftreten würden.

    Allerdings gibt es hierbei nicht die Möglichkeit, in den Datensätzen rückwärts zu springen oder zum Start. Für die zweite Auflistung vom ersten Datensatz an kannst Du aber ein weiteres Seriendruckdokument einrichten, das nach dem oben beschriebenen Verfahren arbeitet, und nach dem Erstellen der beiden Ausgaben diese dann in ein Dokument zusammenführen.
    Mittwoch, 25. März 2009 16:39
  • So, ich habe mir nun die Zeit genommen, das mit MS Query auszuprobieren. Gute Nachricht: Es funktioniert.

    Wenn Du die Datenquelle auswählst, öffnest Du im Auswahldialog MS Query (gut versteckt im Tools Dropdown). Dort liest Du MS Query aus. Danach wählst Du aus, dass Du ein Excel Sheet verwenden möchtest und gibtst den Bereich an (benannter Bereich wird als Tabelle angezeigt), der die Datensätze enthält.
    In MS Query schaltest Du nun auf SQL Ansicht um. Da wirst Du etwas in folgender Art sehen:

    SELECT MyTable.zahl, MyTable.feld1, MyTable.feld2  
     FROM `C:\testdb`.MyTable MyTable 

    Um nun die Daten zweimal drin zu haben und diese auch sortieren zu können, kannst Du nun die Abfrage mit einem UNION ALL verdoppeln.

    SELECT 1, MyTable.zahl, MyTable.feld1, MyTable.feld2  
     FROM `C:\testdb`.MyTable MyTable  
    UNION ALL 
    SELECT 2, MyTable.zahl, MyTable.feld1, MyTable.feld2  
     FROM `C:\testdb`.MyTable MyTable 

    Wie du siehst, habe ich als zusätzliche Spalte noch eine Zahl 1, rsp. 2 vorne hingefügt. Kleiner Nachteil dieser Methode ist, dass Du die Query anschliessend nicht mehr im graphischen Editor bearbeiten kannst, da dieser die Union nicht darstellen kann.

    Diese Query kannst Du nun speichern und in word als Datenquelle benutzen.
    Nun zur hinzugefügten Zahl: Du kannst nun nach dieser Zahl sortieren und mit Bedingungen arbeiten, damit Du zuerst die erste Liste bekommst und anschliessend die zweite Liste mit den zusäztlichen Daten.

    Da Du die Query in MS Query abspeichern kannst, kannst Du diese Query auch anderen Benutzern zur Verfügung stellen.

    Wenn Du übrigens eine Liste in ein Word Dokument einfügen willst, hast du auch die Mögichkeit, das direkt, ohne Serienbrief Funktion zu machen. Aktiviere dazu den Datenbank Toolbar und klicke dort auf "Datenbank Einfügen". dort erhälst Du dann den gleichen Dialog zur Auswahl der DAtenbank und kannst über das Tools Dropdown in der Symbolleiste dann MS Query auswählen und dort im Register Abfragen die vorher abgespeicherte Abfrage auswählen. Wenn Du dann diese Datenquelle in das Word Dokument einfügst, dann erhälst Du eine Tabelle mit den ausgewählten Feldern. Vielleicht wäre auch das eine Mögichkeit, weil Du kannst da mehrere Tabellen einfügen lassen, müsstest also nicht über eine UNION gehen.

    Gruss
    Henry

    [MVP Office Access]
    Donnerstag, 26. März 2009 04:04
    Beantworter

Alle Antworten

  • Hallo dwarkin
    Wo hast Du Deine Daten verwaltet? Falls diese in einer Datenbank, einem Excel File oder einem Text File in strukturierter Form vorliegen, dann wäre die einfachste Möglichkeit, dies über Access zu machen und die Daten dort einzulinken. Den Bericht (mit einem Unterbericht für das zweite Set der Datensätze), den Du so erzeugen kannst, kannst Du anschliessend nach Word exportieren, falls Du diesen in Word brauchst.
    Gruss
    Henry
    [MVP Office Access]
    Mittwoch, 25. März 2009 11:17
    Beantworter
  • Hallo Henry, danke für die Idee, nur setzen wir Access bisher gar nicht ein und es kennen sich diejenigen, die das bedienen müßten, damit auch nicht aus. Die Daten liegen in der Tat in einer EXCEL-Tabelle vor. Hmmm..
    Mittwoch, 25. März 2009 11:29
  • Da gäbe es evt. noch die Möglichkeit über MS Query und einer Union Abfrage zu arbeiten, bei der die Datensätze zweimal zur Ergebnismenge hinzugefügt werden. Aber ob das einfacher wird, bin ich nicht sicher.
    Macht das anschliessend jeder selber oder erstellst Du eine Vorlage für die anderen Bediener?

    Henry
    [MVP Office Access]
    Mittwoch, 25. März 2009 12:09
    Beantworter
  • Du kannst mehrere Datensätze in einem Schreiben unterbringen, indem Du das «Nächster Datensatz»-Seriendruck-Regelfeld verwendest. Mit «Nächster Datensatz Wenn» kannst Du das Einfügen eines Datensatzes von Bedingungen abhängig machen. So könntest Du etwa, wenn Du z.B. nie mehr als 100 (oder 1.000) Datensätze erwartest, insgesamt 100-malig (oder 1.000-malig) die Daten ausgeben lassen unter der Bedingung, dass etwa ein garantiert immer belegtes Feld nicht leer ist - so vermeidest Du überschüssige Leerzeilen, die ohne die Wenn-Bedingung auftreten würden.

    Allerdings gibt es hierbei nicht die Möglichkeit, in den Datensätzen rückwärts zu springen oder zum Start. Für die zweite Auflistung vom ersten Datensatz an kannst Du aber ein weiteres Seriendruckdokument einrichten, das nach dem oben beschriebenen Verfahren arbeitet, und nach dem Erstellen der beiden Ausgaben diese dann in ein Dokument zusammenführen.
    Mittwoch, 25. März 2009 16:39
  • das klingt interessant: in der Tat wäre es der Hit, wenn ich das alles in einem Dokument erledigen könnte. Ich verstehe Dich aber so, dass das mit WORD nicht gehen würde. Ich werd den Ansatz mit den zwei Doks mal testen lassen per Teil-/Hauptdokument.
    Wenn jemand aber eine noch bessere Idee hat, gern.
    Mittwoch, 25. März 2009 20:44
  • So, ich habe mir nun die Zeit genommen, das mit MS Query auszuprobieren. Gute Nachricht: Es funktioniert.

    Wenn Du die Datenquelle auswählst, öffnest Du im Auswahldialog MS Query (gut versteckt im Tools Dropdown). Dort liest Du MS Query aus. Danach wählst Du aus, dass Du ein Excel Sheet verwenden möchtest und gibtst den Bereich an (benannter Bereich wird als Tabelle angezeigt), der die Datensätze enthält.
    In MS Query schaltest Du nun auf SQL Ansicht um. Da wirst Du etwas in folgender Art sehen:

    SELECT MyTable.zahl, MyTable.feld1, MyTable.feld2  
     FROM `C:\testdb`.MyTable MyTable 

    Um nun die Daten zweimal drin zu haben und diese auch sortieren zu können, kannst Du nun die Abfrage mit einem UNION ALL verdoppeln.

    SELECT 1, MyTable.zahl, MyTable.feld1, MyTable.feld2  
     FROM `C:\testdb`.MyTable MyTable  
    UNION ALL 
    SELECT 2, MyTable.zahl, MyTable.feld1, MyTable.feld2  
     FROM `C:\testdb`.MyTable MyTable 

    Wie du siehst, habe ich als zusätzliche Spalte noch eine Zahl 1, rsp. 2 vorne hingefügt. Kleiner Nachteil dieser Methode ist, dass Du die Query anschliessend nicht mehr im graphischen Editor bearbeiten kannst, da dieser die Union nicht darstellen kann.

    Diese Query kannst Du nun speichern und in word als Datenquelle benutzen.
    Nun zur hinzugefügten Zahl: Du kannst nun nach dieser Zahl sortieren und mit Bedingungen arbeiten, damit Du zuerst die erste Liste bekommst und anschliessend die zweite Liste mit den zusäztlichen Daten.

    Da Du die Query in MS Query abspeichern kannst, kannst Du diese Query auch anderen Benutzern zur Verfügung stellen.

    Wenn Du übrigens eine Liste in ein Word Dokument einfügen willst, hast du auch die Mögichkeit, das direkt, ohne Serienbrief Funktion zu machen. Aktiviere dazu den Datenbank Toolbar und klicke dort auf "Datenbank Einfügen". dort erhälst Du dann den gleichen Dialog zur Auswahl der DAtenbank und kannst über das Tools Dropdown in der Symbolleiste dann MS Query auswählen und dort im Register Abfragen die vorher abgespeicherte Abfrage auswählen. Wenn Du dann diese Datenquelle in das Word Dokument einfügst, dann erhälst Du eine Tabelle mit den ausgewählten Feldern. Vielleicht wäre auch das eine Mögichkeit, weil Du kannst da mehrere Tabellen einfügen lassen, müsstest also nicht über eine UNION gehen.

    Gruss
    Henry

    [MVP Office Access]
    Donnerstag, 26. März 2009 04:04
    Beantworter