PDA

Vollständige Version anzeigen : Dynamischer Word-Serienbrief/Katalog aus Access


Alexander Jan Peters
07.05.2001, 10:54
<font color="#000000" size="2" face="Tahoma">Hallo,

ich habe entweder ein Brett vor dem Kopf, oder aber das Ganze ist nicht so einfach, wie ich zuerst dachte.
Aus einer Access-DB heraus sollen Word-Dokumente erzeugt werden, an sich kein Thema, aber es sind innerhalb dieser Dokumente Gruppierungen vorzunehmen, wie man es von Berichten aus Access kennt.
Über Seriendruck-Katalog, bin ich ja in der Lage Auflistungen/Tabellen in Word zu erzeugen, aber wie lege ich Gruppierungsebenen an? Ist das überhaupt (einfach) machbar?
Bislang hatte ich es über VBA mit verschiedenen Recordsets, Bookmarks und AddRows "manuell" gelöst, aber die Performance ist ja grausig.
Das Dokument soll hinterher etwa so aussehen:

Normaler Briefkopf (statisch)
Vertriebsgebiet A
z.Hd. Hans Müller

Sehr geehrter Herr Müller,

anbei die Verkaufzahlen des vergangenen Monats.

Produktgruppe A (Tabelle)
Produkt A1, 16 Stück
Produkt A2, 22 Stück
...
Produktgruppe B (Tabelle)
Produkt B1, 9 Stück
Produkt B2, 26 Stück
...

usw.

Die Produktgruppen sind je nach Empfänger (auch von der Anzahl her) verschieden.
Die Datenquelle sieht etwa so aus:

Vertriebsgebiet, Gebietsleiter, Produktgruppe, Produkt, Stückzahl
A, Müller, A, A1, 16
A, Müller, A, A2, 22
A, Müller, B, B1, 9
A, Müller, B, B2, 26
B, Schulze, A, A4, 10
A, Schulze, B, B1, 44
A, Schulze, B, B2, 3
A, Schulze, C, C2, 17

Es gelingt mir einfach nicht, den Briefkopf nur einmal einzufügen, sowie eine Gruppierung nach Produktgruppen zu erzeugen.
Ich weiß, daß diese Frage eigentlich ins Word-Forum gehören sollte, aber da dort kaum über VBA-Lösungen diskutiert wird, plaziere ich sie mal hier.
Also, ich bin für jede Anregung dankbar.

Gruß

A.J. Peters</font>

Kurt aus Kienitz
07.05.2001, 14:21
Hallo,

Hast Du es schon einmal mit der Word-Serienbrieffunktion in Kombination mit "Einfügen-Datenbank" versucht ?

Wenn man so eine "Datenbank" als Feld einfügt und sich dann die Feldfunktion ansieht, entpuppt sich daß ganze als SQL-Statement.
Bsp.:
{DATENBANK \d "D:\\TEMP\\PrGrp.txt" \s "SELECT Vertriebsgebiet, Gebietsleiter, Produktgruppe, Produkt, Stückzahl FROM D:\\TEMP\\PrGrp.txt WHERE ((Gebietsleiter = '{SERIENDRUCKFELD Gebietsleiter}))'}

Über die WHERE-Klausel kann man dann das Datenbankfeld mit dem Datensatz aus dem Seriendruck verbinden ({SERIENDRUCKFELD Gebietsleiter}).