Datensatzfilter von Access zu Word

Nochmals die Frage, da keiner geantwortet hat und das Problem immer noch nicht gelöst ist. Wer weiss Hilfe?
Daten eines Formulars einer Access Datenbank sollen in Word ausgegeben werden. Das funktioniert ganz wunderbar nur leider wird immer nur der erste Datensatz übergeben und die Filter (Daten jeweils einer bestimmten Nr) nicht berücksichtigt. Nachfolgend der Code.

Sub HinzuwordAusz()
‚Öffnet das Wordformular Brief und fügt die Daten zu.‘
Dim db As Database, Ab As Recordset
Dim word As Variant
Set db = CurrentDb
Set Ab = db.OpenRecordset(„ESFAnteilAuszahlung“)
db.OpenRecordset („ESFAnteilAuszahlung“)
Set word = GetObject(, „Word.Application“)
word.Visible = True
word.Documents.Open FileName:=„C:\Programme\Microsoft Office\Vorlagen\ABMA.dot“
word.ActiveDocument.FormFields(„Text9“).Result = Ab![PrüferKürzel]
word.ActiveDocument.FormFields(„Text10“).Result = Ab![Durchwahl]
word.ActiveDocument.FormFields(„Text11“).Result = Ab![PNr]
word.ActiveDocument.FormFields(„Text12“).Result = Ab![Projektname]
word.ActiveDocument.FormFields(„Text13“).Result = Ab![Abgerechnet 99:]

End Sub

Nochmals die Frage, da keiner geantwortet
hat und das Problem immer noch nicht
gelöst ist. Wer weiss Hilfe?

Vielleicht weiß ja auch niemand Hilfe?!

Ich selber verstehe von VisualBasic-Skript (und dessen API zu DBs!) zu wenig, so daß ich hier nur ein paar Hinweise geben kann.

Daten eines Formulars einer Access
Datenbank sollen in Word ausgegeben
werden. Das funktioniert ganz wunderbar
nur leider wird immer nur der erste
Datensatz übergeben und die Filter (Daten
jeweils einer bestimmten Nr) nicht
berücksichtigt. Nachfolgend der Code.

Sub HinzuwordAusz()
‚Öffnet das Wordformular Brief und fügt
die Daten zu.‘
Dim db As Database, Ab As Recordset
Dim word As Variant
Set db = CurrentDb

hier wird die Variable db auf die aktuelle Datenbank gesetzt und initialisiert(!!!). D.h. es werden alle Zähler evtl. auf 0 gesetzt.

Set Ab =
db.OpenRecordset(„ESFAnteilAuszahlung“)
db.OpenRecordset („ESFAnteilAuszahlung“)

Warum wird das hier zweimal gemacht? Das kann mein Unverständnis sein?!

Set word = GetObject(,
„Word.Application“)
word.Visible = True
word.Documents.Open
FileName:=„C:\Programme\Microsoft
Office\Vorlagen\ABMA.dot“

Hier holst Du Dir offensichtlich eine Word-Instanz und öffnest ein Objekt

word.ActiveDocument.FormFields(„Text9“).Result
= Ab![PrüferKürzel]
word.ActiveDocument.FormFields(„Text10“).Result
= Ab![Durchwahl]
word.ActiveDocument.FormFields(„Text11“).Result
= Ab![PNr]
word.ActiveDocument.FormFields(„Text12“).Result
= Ab![Projektname]
word.ActiveDocument.FormFields(„Text13“).Result
= Ab![Abgerechnet 99:]

und es werden ein paar Textfelder übernommen…

End Sub

und hier sind wir wieder draussen.

Das Problem ist meiner Meinung nach die Initialisierung der Datenbank. Du selber solltest eine Schleife über alle Datensätze in dem RecordSet (was wohl nichts anderes als eine Zeile in einer Relation darstellt?!) programmieren.
Im Moment holst Du auch nur einen Datensatz (nämlich den ersten!) und schreibst diesen in das Word-Dokument.
Du mußt das (wie schon gesagt) für alle machen. Also meiner Meinung nach ganz einfach.

MfG Frank

PS. Falls ich blödsinn geredet habe, dann liegt das am „falschen“ BS :wink: