Automatisierungsfehler / Ausnahmefehler des Servers bei Objekten mit Late Binding

02. Oktober 2015

Wenn ich Funktionen zur Kommunikation von Access mit anderen Office-Programmen programmiere - also mit Excel, Word oder Outlook -, verwende ich Late Binding, um nicht die entsprechenden Bibliotheken einbinden zu müssen, weil man ansonsten immer mal wieder Probleme bei der Installation in unterschiedlichen Umgebungen bekommt.

Dann bekomme ich gelegentlich die Fehlermeldung "Automatisierungsfehler Ausnahmefehler des Servers". (Bei mir hat er gerade die Error Number -2147417851, aber ich weiß nicht, wie verbindlich diese ist :-)

Der Fehler tritt auf, wenn ich in der mit CreateObject() generierten Applikation auf einen Parameter meiner Funktion oder auf ein Feld im Formular zugreife, wie es z.B. in folgendem Code geschieht:

Function Mailversand(EmailAdresse) As Boolean

Dim F As Form
Dim OutApp As Object, Dim OutMail As Object

  Set F = Forms!Mailform

  Set OutApp = CreateObject("Outlook.Application")
  Set OutMail = OutApp.CreateItem(olMailItem)

  With OutMail
    .To = EmailAdresse
    .Subject = F!Subject
    ...

Ein Workaround für dieses Problem ist das Kopieren des Parameters bzw. Feldes in eine lokale Variable:

Function Mailversand(EmailAdresse) As Boolean

Dim F As Form
Dim OutApp As Object, Dim OutMail As Object
Dim LocAdr As Variant, LocSubject As Variant

  Set F = Forms!Mailform

  LocAdr = EmailAdresse
  LocSubject = F!Subject

  Set OutApp = CreateObject("Outlook.Application")
  Set OutMail = OutApp.CreateItem(olMailItem)

  With OutMail
    .To = LocAdr
    .Subject = LocSubject
    ...

Kommentare

Neuen Kommentar schreiben