Daten aus zwei Tabellen nach Word ausgeben

Hallo,
ich möchte die Daten, von 2 Datensätzen, die miteinander verknüpft sind in ein Word-Formular an vorher definierte Textmarken ausgeben.

Der Datensatz1 (tab_Kunden) wird im aktuellen Formular Forms!frm_HFKunden angezeigt.
In diesem Datensatz befindet sich für den Kunden ein Anredeschlüssel (01 für Frau, 02 für Herrn, usw.). Die ausgeschriebene Anrede ist in der Tabelle tab_Anrede abgespeichert.
Wie kann ich in meinem Modul die ausgeschriebene Anrede aus der Tabelle tab_Anrede aufgrund des vorhandenen Anredeschlüssels auslesen und nach Word ausgeben.

Nachfolgend ein Auszug aus meinem Modul:

strNameFirma = Forms!frm_HFKunden!Firma

strFirmaAnsprechpartnerAnrede = Forms!frm_HFKunden!Ap1Anredeschlüssel '(Dahinter versteckt sich der Anredeschlüssel 01, 02, …)

Set appWord = CreateObject(„Word.Application“)

With appWord
.Documents.Add Pfad & „“ & Dokument '(Speicherort des Rohdokuments)
.ActiveDocument.ShowSpellingErrors = False
.Selection.Goto wdGotoBookmark, Name:=„NameFirma“
.Selection.TypeText strNameFirma

Vielen Dank.
Bernd

PS: Weiß jemand, wie man Textmarken in Excel definieren kann? Als nächstes muß ich Daten in ein Excelformular ausgeben…Reicht man den kleinen Finger, wird gleich die ganze Hand…

DLookup
Wenn’s um ein einzelnes Feld geht, ist DLookup das Einfachste:

Dim Tmp
Tmp = DLookup("Langanrede","tblAnrede","AnredeID = " & Me!AnredeID)
If Not Isnull(Tmp) then .Selection.TypeText Tmp

bei mehreren Feldern solltest du die entsprechende Tabelle als separates Recordset (siehe dort) öffnen…

Reinhard

Ja, es geht um mehrere Felder - zwar nicht bei der Anrede, sondern bei anderen Tabellen, die ich auf die gleiche Weise abfragen und die gefundenen Werte nach Word ausgeben muß: Z.B. Absender des Briefes= Absenderschlüssel. In der tab_Absender steht dann hinter dem Absenderschlüssel, Name, Vorname, Adresse, usw…fast alle Felder eines ganzen Datensatzes muessen ausgegeben werden.

Bestünde dazu nicht auch die Möglichkeit den Datensatz in einem Unterformular zu öffnen (allerdings für den User nicht sichtbar) und die Daten des Unterformulars nach Word auszugeben??

 strAbsenderName = Me!MeinUnterformular!AbsenderName

oder so ähnlich?
Oder macht das meine Access-Anwendung nur unnötig langsam?

Hättest Du da vieleicht noch einen guten Tipp?

Gruß,
Bernd

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ja, es geht um mehrere Felder - zwar
nicht bei der Anrede, sondern bei anderen
Tabellen, die ich auf die gleiche Weise
abfragen und die gefundenen Werte nach
Word ausgeben muß: Z.B. Absender des
Briefes= Absenderschlüssel. In der
tab_Absender steht dann hinter dem
Absenderschlüssel, Name, Vorname,
Adresse, usw…fast alle Felder eines
ganzen Datensatzes muessen ausgegeben
werden.

Na, dann öffnest du halt die entsprechende Tabelle als Recordset (der Weg über ein Unterformular ist unnötig kompliziert):

Dim DB as Database, RS as Recordset
Set DB = CurrentDB
Set RS = DB.Openrecordset("SELECT \* FROM tab\_Absender WHERE Absenderschlüssel = " & Me!Ap1Anredeschlüssel , dbopendynaset)
With appWord
.Selection.Goto wdGotoBookmark, Name:="NameFirma"
.Selection.TypeText RS!NameFirma
.Selection.Goto wdGotoBookmark, Name:="Strasse"
.Selection.TypeText RS!Strasse
' oder wie auch immer

Reinhard