Hallo,
ich öffne eine .msg Datei als Mailithem mit folgendem Code:
Private Sub BefMailLaden_Click()
Dim OULook As Outlook.Application
Set OULook = New Outlook.Application
Set OLMailIthem = Nothing
Set OLMailIthem = OULook.Session.OpenSharedItem(p_TempVerzeichnis & "Signatur.msg")
OLMailIthem.Display
End Sub
Ziel ist es, dass der Datenbankbenutzer den Maileditor von Outlook angezeigt bekommen soll, um dort seine Signatur zur bearbeiten. Nach der Bearbeitung der Mail soll die Datei gespeichert werden um sie weiterverarbeiten zu können. Folgendes Problem besteht:
Ist das Outlook Hauptfenster geschlossen, so wird beim Ausführen des oben gezeigten Codes das Mailfenster geöffnet, die Datei wird geladen, angezeigt, man kann Änderungen vornehmen, speichern, schließen. Danach ist die Datei freigegeben und kann weiterverarbeitet werden.
Ist allerdings das Outlook Hauptfenster geöffnet (Outlook bereits gestartet), so wird ebenfalls die Datei geladen, der Maileditor geöffnet, die Mail wird angezeigt und kann editiert, gespeichert und geschlossen werden... Allerdings bleibt nun danach die Datei in Benutzung. Bei erneutem Zugriff darauf erhalte ich die Fehlermeldung: Laufzeitfehler -2147287008 "Die Datei xxxxx kann nicht geöffnet werden. Möglicherweise ist die Datei bereits geöffnet..."
Ich kann aber nirgends sehen wo die geöffnet sein soll...
Leider komme ich hier nicht weiter.. Kann jemand helfen?
Outlook läuft nur in einer Instanz/Rechner. Versuche deshalb, zuerst auf eine laufende Instanz zuzugreifen und erstelle nur bei Nicht-Erfolg eine neue Outlook-Instanz. On Error Resume Next
Set Outlook = GetObject(, "Outlook.Application")
On Error Goto 0
If Outlook Is Nothing Then Set Outlook = New Outlook.Application
Hi Lachtaube. Besten Dank. Ich habe das entsprechend angepasst, erhalte aber beim wiederholten Aufruf nun erst Fehlermeldung "Der von Ihnen eingegebene Ausdruck enthält einen ungültigen Verweis auf die Hauptobjekteigenschaft.
Markiert ist dabei diese Zeile: Set OLMailIthem = OULook.Session.OpenSharedItem(p_TempVerzeichnis & "Signatur.msg")
Der vollständige Code sieht mit den Anpassungen nun wie folgt aus:
Private Sub BefMailLaden_Click()
Dim OULook As Outlook.Application
Dim OLMailIthem As Outlook.MailItem
On Error Resume Next
Set OULook = GetObject(, "Outlook.Application")
On Error GoTo 0
If OULook Is Nothing Then Set OULook = New Outlook.Application
Set OLMailIthem = OULook.Session.OpenSharedItem(p_TempVerzeichnis & "Signatur.msg")
OLMailIthem.Display
Set OULook = Nothing
Set OLMailIthem = Nothing
End Sub
Beende ich den Code an dieser Stelle und rufe die Sub erneut auf, erhalten ich wieder die Meldung, dass die Datei in Benutzung ist.
Hallo,
bei mir läuft der Code.
Du bist dir sicher dass du das Fenster mit der Signatur vor dem Neuaufruf wirklich geschlossen hast!?
Teste den Code mal direkt in Outlook.
Hi Steffen,
ja klar, das war das erste wonach ich geschaut habe.... Ich klicke speichern und danach auf schließen (X).
Es ist zu.... Aber wohl irgendwo und irgendwie noch in Benutzung... Ich versteh es nicht.
Ich hab gerade nochmal im Prozess Explorer nachgeschaut... Also es ist Oulook, welches die Datei weiter in Benutzung hält....
Ich habe deinen Code 1:1 bei mir ausgeführt. Hier tritt kein Fehler auf.
Greifst du evtl. noch an einer anderen Stelle in deiner Applikation auf diese Datei zu und die Datei wird dort nicht geschlossen? Oder hast du Code in Outlook, der evtl. beim Öffnen von Mailitems automatisch aktiv wird und die Sperrung verursacht?
Ich habs gefunden... Es lag entweder am Banana Tag Plugin oder am Social Connector Plugin.... Alles deaktiviert.. Jetzt läuft es auch bei mir.... >:( >:( >:( >:( >:(
Mensch.... Lebenszeit... ???