Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Access verweigert Zugriff auf Datei (OLMailIthem)

Begonnen von datekk, August 18, 2017, 14:53:25

⏪ vorheriges - nächstes ⏩

datekk

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?

Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

Lachtaube

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
Grüße von der (⌒▽⌒)

datekk

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.
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

steffen0815

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.

Gruß Steffen

datekk

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.
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

datekk

Ich hab gerade nochmal im Prozess Explorer nachgeschaut... Also es ist Oulook, welches die Datei weiter in Benutzung hält....
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

PhilS

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?



Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

datekk

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...  ???
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps