Hallo Forum,
Zu diesem Thema gibt es genügend Beiträge im WWW, nur solange es
einen Shell-Aufruf betrifft, nicht wenn aus Access ein Word-Objekt
zur Bearbeitung eines Dokumentes geöffnet wird.
Wie kann ich Access warten lassen bis ich Word schließe.
Ich vermute dass er dieses jetzt nicht immer macht, weil manchmal das
Word-Dokument nicht angezeigt wird. Mein Adressformular wird aber
geupdated, d.h. der Brief wird registriert und die Adresse
zugeordnet. Das sind Tätigkeiten die NACH dem ‚Wordaufruf‘ geschehen.
Dazu die wichtigsten Zeilen zum Aufruf:
Private Sub funktionskombiliste\_AfterUpdate()
Dim filename As String
Dim betreff As String
Select Case Me.funktionskombiliste.Column(0)
Case 1: betreff = InputBox("Betreff eingeben", "Betreff")
filename = newFilenameGen("Brief", betreff)
Call einzelbrief\_tmpl("brief2.dot", Me.idx , betreff, filename, 1)
' Diese Funktion frischt mein Adressformular auf
formrequery Me.Form, Me.idx
.
.
.
Damit ihr mal prüfen könnt ob es an der Funktion liegt die das
Worddokument generiert hier noch das Wichtigste aus dieser:
Sub einzelbrief\_tmpl(tmpl, id, betreff, filename, case\_id As Integer)
Dim appWd As Word.Application
Dim WordDoc As Word.Document
Dim Nix
On Error Resume Next 'See if Word is running
'Set appWd = GetObject(, "Word.Application.9")
Set appWd = GetObject(, "Word.Application")
If Err.Number 0 Then 'Word Not running
Err.Clear ' Clear Err object in case error occurred.
'Create a new instance of Word
'Set appWd = CreateObject("Word.Application.9")
Set appWd = CreateObject("Word.Application")
'Create an instance of Word
Else
appWd.Activate
End If
On Error GoTo einzelbrief\_tmpl\_Error
With appWd
' Vorlage als Dokument öffnen
.Documents.Add Template:=CurrentProject.path & "\" & tmpl
.ActiveDocument.Bookmarks("firma").Select
.Selection.InsertAfter Nz(Forms("Adressen")![Firma])
...etc.
' Dokument sichern
.ActiveDocument.SaveAs filename
.ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
' Sichtbar setzen
.Visible = True
'Maximieren
.WindowState = wdWindowStateMaximize
'zum txtanfang springen wenn vorhanden
If .ActiveDocument.Bookmarks.Exists("txtanfang") Then
.ActiveDocument.Bookmarks("txtanfang").Select
End If
' .Quit
End With
einzelbrief\_tmpl\_Exit:
Exit Sub
einzelbrief\_tmpl\_Error:
If Err.Number = 5941 Then
Nix = MsgBox("Falsche WinWordVorlage (Textmarke fehlt)" & \_
vbCrLf & "Vorlage war : " & tmpl, \_
vbCritical, "WinWord Abbruch")
appWd.Quit
GoTo einzelbrief\_tmpl\_Exit
End If
End Sub
Hab ich dort einen Fehler drin, oder kann ich Access warten lassen
bis ich mit dem WDoc fertig bin?
MfG
Marc