Seriendruck per VBA

Von: , Frage gestellt am Di, 19. Jun 2007

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

1 Antworten zu dieser Frage

  1. Antwort von nach einer Stunde 0 hilfreich
    Re: Access & Word & VBA

    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)

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!