Seriendruck per VBA

hallo Board,

ich versuche gerade, einen Brief (.dot) mit definierten Seriendruckfeldern von Access aus aufzurufen, dann mit der Accessdatenbank zu verknüpfen und letzendlich zu einem neuen Dokument zusammenzuführen.

Soweit so gut …
Mein Problem besteht nun darin, dass ich sehr wohl von Access aus Word starten, die Datei aufrufen und neu speichern kann …

Jetzt will ich aber auch versuchen den connect per VBA zu steuern (um das SQL-Statement abzuändern)

Da ich mich in VBA für Word leider überhaupt nicht auskenne, blieb mir bisher nur der Weg über denn Makrorekorder …

Dieser Code steht bei mir in Access

Public Sub WordInit()
 Dim objWord

 On Error Resume Next
 Set objWord = GetObject(, \_
 "Word.Application")

 If Err.Number \> 0 Then

 On Error GoTo 0
 Set objWord = \_
 CreateObject("Word.Application")
 Else
 objWord.Activate
 End If

 With objWord
.Visible = True
.Documents.Open FileName:=("C:\Documents and Settings\...\tipo2.dot")
.ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
.ActiveDocument.MailMerge.OpenDataSource Name:= \_
 "C:\Documents and Settings\...\Aplicacion\_Correspondencia.mdb" \_
 , ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, \_
 AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", \_
 WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, \_
 Format:=wdOpenFormatAuto, Connection:="TABLE carta", SQLStatement:= \_
 "SELECT \* FROM [carta]", SQLStatement1:="", SubType:=wdMergeSubTypeOther
.ActiveDocument.MailMerge.ViewMailMergeFieldCodes = wdToggle

'hier würde ich in das SELECT Statement gerne eine WHERE Bedingung einfügen ... geht das?

 End With
 Set objWord = Nothing

End Sub

Allerdings funktioniert dieser Code so nur bis zum öffnen von Word und dem Dokument (welches bereits manuell an eine [zum testen] andere Datenbank gebunden ist) danach läuft aber nichts mehr … der Code wird zwar ohne Fehler durchlaufen, „bewirkt“ aber keine Bindung an die neue Datenbank.

Vielleicht könnt ihr mir ja helfen, meine Fehler in dem für mich recht ungewohnten Word-Code zu verbessern.

Vielen Dank im Voraus,
cosPhi

hallo cosPhi,

Jetzt will ich aber auch versuchen den connect per VBA zu
steuern (um das SQL-Statement abzuändern)

was soll der Blödsinn? du arbeitest doch in Access, also nutze es!

BTW von welchen Versionen reden wir?

SQLStatement:= _
„SELECT * FROM [carta]“, SQLStatement1:="",

'hier würde ich in das SELECT Statement gerne eine WHERE
Bedingung einfügen … geht das?

ja, wie in Access:
„SELECT * FROM [carta] where [TEST] = ‚meintest‘“

denke an die Gänefüßchen!

Allerdings funktioniert dieser Code so nur bis zum öffnen von
Word und dem Dokument (welches bereits manuell an eine [zum
testen] andere Datenbank gebunden ist) danach läuft aber
nichts mehr … der Code wird zwar ohne Fehler durchlaufen,
„bewirkt“ aber keine Bindung an die neue Datenbank.

logo, da du die alte Bindung nicht aufgehoben hast

Vielleicht könnt ihr mir ja helfen, meine Fehler in dem für
mich recht ungewohnten Word-Code zu verbessern.

  1. erstelle eine Abfrage in Access, die deine Bedingungen erfüllt
  2. binde diese Abfrage als Datenquelle an dein Dokument
  3. rufe den Brief auf und drucke Ihn dann

Grüße aus Raben Steinfeld (bei Schwerin)
Wolfgang
(Netwolf)