Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Serienbrief Word mit mehreren Datenquellen

Begonnen von uweli, August 07, 2014, 00:47:23

⏪ vorheriges - nächstes ⏩

uweli

Hallo liebe User,
ich habe einriesiges Problem mit einem Serienbrief, den ich aus Access aus starte.
Das aufrufen und die Einbindung eines "normalen" Serienbriefes funktioniert einwandfrei.
Nun möchte ich aus einer zweiten Abfrage in diesen, ähnlich einem Unterformular, eine zweite Datenquelle einbinden (Beide verfügen über eine eindeutige ID und eine 1-n Verknüpfung).
Zur Verdeutlichung:
Beispiel einer Buchung:
1. Datenquelle = Kundendaten
2. Datenquelle = gebuchte Pakete (je Kunde unterschiedliche Anzahl)
ich bekomme das einfach nicht hin.
Wenn ich die Daten im Worddokument fest verbinde funktioniert es.
Ich muss es aber dynamisch aus Access steuern können, sprich mit
Mailmerge die Datenquelle übergeben und dann in Word den Datenquellennamen auslesen
und dann die zweite Abfrage einbinden beim Datensatzwechsel.
Hat jemand eine Idee, wie ich das am besten realisieren kann.
Ich danke schonmal für Eure Bemühungen und Anregungen.

database

Hallo,
ich würde sagen, dass du die Datenquelle ändern musst.
Der Serienbrief bezieht nach deiner Schilderung aktuell seine Daten direkt aus der Kundentabelle.
Du benötigst aber auch Daten aus der 2. Tabelle - also erstelle dir eine Abfrage welche die benötigten Felder aus beiden Tabellen beinhaltet und speichere diese.
Als Datenquelle gibst du dann die Abfrage an und nicht eine Tabelle.

uweli

Hallo Peter,
vielen Dank für die schnelle Antwort. Auf diese Idee kam ich auch schon, habe diese aber verworfen,
denn bei etwa 35 Buchungen á 3 Daten macht das über 100 Spalten zuzüglich der Kundendaten. Ich fand das etwas unübersichtlich zu händeln. Deshalb kam ich auf die Idee einer zweiten Datenquelle.

LG Uwe

MaggieMay

Hallo,

du könntest den Serienbrief komplett aus Access heraus mit Hilfe von Textmarken füttern.
Mit der zweiten Datenquelle könntest du bspw. eine Word-Tabelle dynamisch füllen.
Oder wie sieht der Aufbau des Briefes aus?
Oder ist es ein "echter" Serienbrief, der gleich für mehrere Kunden erstellt werden soll?
Freundliche Grüße
MaggieMay

uweli

Hallo zurück,
es ist ein "echter" Serienbrief ( mit Logo, Anschriftfeld, persönlicher Anrede, Fußzeile ...), der an ca. 600 Kunden raus soll. Und meine Idee war in Word eine Tabelle mit Textmarken zu erstellen, die ich dynamisch fülle - deshalb auch die zweite Datenquelle. Der Weg über Word deshalb, weil die Mitarbeiter Ihre Briefe immer ändern müssen und da fällt die "Hardcodierung" als Report halt weg. Das Problem ist, das ich die zweite Datenquelle zwar fest in Word integrieren kann, muss dies aber, da Netzwerk und verschiedene Arbeitsplätze, dynamisch gestalten.

MaggieMay

Zitatweil die Mitarbeiter Ihre Briefe immer ändern müssen
Sorry, aber das halte ich prinzipiell für fragwürdig.

Soll der Mitarbeiter tatsächlich 600 Briefe durchsehen, um zu prüfen wo was (was denn überhaupt?) geändert werden muss?
Zitatdas ich die zweite Datenquelle zwar fest in Word integrieren kann
Wie könnte man das machen? (den Fall hatte ich noch nicht)
Freundliche Grüße
MaggieMay

uweli

Zitat von: MaggieMay am August 07, 2014, 11:00:54
Zitatweil die Mitarbeiter Ihre Briefe immer ändern müssen
Sorry, aber das halte ich prinzipiell für fragwürdig.
Soll der Mitarbeiter tatsächlich 600 Briefe durchsehen, um zu prüfen wo was (was denn überhaupt?) geändert werden muss?
Zitatdas ich die zweite Datenquelle zwar fest in Word integrieren kann
Wie könnte man das machen? (den Fall hatte ich noch nicht)
"Deutsche Sprachen - schwere Sprachen." Ich habe mich wieder mal nicht genau genug ausgedrückt - sorry -
Der Brief besteht aus einem "Anschreiben/Vorwort/Einleitung" dann die Tabelle mit den Buchungen und dann dem "Nachwort" und das muss von Zeit zu Zeit den Bedürftnissen angepasst werden (Besondere Angebote etc.).
2. Die zweite Datenquelle kann ich ganz bequem per vba einbinden - aber und hier kommt der Knackpunkt der Pfad zur Datenquelle muss dynamisch sein und sich auf die Hauptdatenbank beziehen.



MaggieMay

Dann müsstest du doch beim Aufruf des Serienbriefes die zweite Datenquelle in Form eines SQL-Statements übergeben können.

Kannst du mir dieses "ganz bequem per vba einbinden" mal zeigen?
Freundliche Grüße
MaggieMay

uweli

Hallo MaggieMay,
sorry, das ich erst jetzt antworte, aber ich war etwas gesundheitlich verhindert.
Hier der Code:

  Quelle = "D:\Datenbank.mdb"
  'Die Verbindung mit den sekundären Daten wird hergestellt
  strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Quelle & ";"
  strCon = strCon & "Persist Security Info=False"
  Set oConn = New ADODB.Connection
  oConn.Open strCon


DF6GL

Hallo,


ich würde ganze einfach die Serienbrief-Funktion von Word verwenden  (objWord.Mailmerge und  Serienbrieffeldern, d. h. Hauptdokument mit Steuerdatei, bzw. Steuerdaten aus Access-Abfrage ) und keine Word-Tabelle mit Einzeldaten beschicken...
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

uweli

Ein freundliches Hallo zurück.
Das Problem ist, das zu jedem Datensatz weitere, wie in einem Unterformular, Datensätze gehören
und das Handling von so vielen Feldern doch etwas aufwendig ist.
Ich habe zwischenzeitlich schonmal probiert über
Quelle = ActiveDocument.MailMerge.DataSource.Name
die Datasource des Hauptdokuments (Serienbrief) in Word auszulesen. Wenn das Dokument geladen ist funktioniert das auch und ich kann meine Abfrage einbinden. Nur wie kann ich das automatisieren? Wenn ich das im Word Dokument unter
Private Sub Document_Open()
einbinde kommen nur Fehler, weil das Mailmerge noch nicht geladen wurde.

LG Uwe

DF6GL

Hallo,

such mal hier im Forum nach "Mailmerge"...
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

uweli

Erstmal Danke für den Hinweis. ;)
Nun hab ich es anders gelöst.
Meine Lösung:
Ich habe eine Kreuztabelle gemacht, die als Datenquelle dient. In das Feld Spalte den Wert entsprechend als Ausdruck formatiert mit Tabs und Zeilenumbruch.
In Word dann das Ganze als Mergefelder mit If eingebunden - et voilà es funktioniert so wie ich es wollte.