Habe folgendes Problem:
In einem Access-Formular sind Dokumente aufgelistet, die in einer
Access2000-DB als OLE-Objekte abgelegt sind. Habe nun versucht das ganze
soweit zu bringen, dass beim Öffnen des Dokuments eine Textdatei als
Datenquelle für Serienbriefe automatisch definiert wird.
Das ganze funktioniert einwandfrei, wenn noch keine Instanz von Word läuft.
Ist Word jedoch gestartet, so führt der Befehl zum Speichern der Änderungen
zum Laufzeitfehler 4198: Befehl misslungen. Das Dokument lässt sich ab
diesem Zeitpunkt auch nicht mehr schliesen bzw. Word lässt sich nicht mehr
beenden. Es bleibt nur noch der Abschuss über den Taskmanager (wodurch
natürlich alle Änderungen verloren sind.
Wenn man die Zeile mit MailMerge.OpenDataSource aus der Routine entfernt,
funktioniert alles wunderbar (ausser, dass dann natürlich die Datenquelle
nicht zugeordnet wird).
KENNT JEMAND DAS PROBLEM?
Vielen Dank für jegliche Info
Manfred
Als Ergänzung der verwendete Programmcode (OleObj ist der Name des Feldes,
das auf das OLE-Objekt in der Access-Tabelle gebunden ist):
Private Sub OleObj_DblClick(Cancel As Integer)
Dim objWord As Word.Application
On Error Resume Next
Set objWord = GetObject(, "Word.Application")
If Err.Number <> 0 Then
Err.Clear
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Else
objWord.Activate
End If
On Error GoTo Err_OleObj_DblClick
Me.OleObj.Verb = acOLEVerbOpen
Me.OleObj.Action = acOLEActivate
objWord.ActiveDocument.MailMerge.OpenDataSource
Name:="C:\Temp\Winword.TXT", LinktoSource:=True
objWord.ActiveDocument.Save
Exit_OleObj_DblClick:
Set objWord = Nothing
Exit Sub
Err_OleObj_DblClick:
MsgBox "Fehler " & Err.Number & ": " & Err.Description
Resume Exit_OleObj_DblClick
End Sub