Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

outlook.application "typ nicht definiert"

128 views
Skip to first unread message

Gerald Fleige

unread,
May 20, 2004, 9:17:09 AM5/20/04
to
Hallo,
ich möchte per Knopfdruck von einem Access-Formular Mails
an verschiedene Adressaten schicken, die ich in Access
gespeichert habe. Schon bei der ersten Zeile der Prozedur
DIM olApp As Outlook.Application bekomme ich diese
Fehlermeldung.
"Fehler beim Kompilieren: Benutzerdefinierter Typ nicht
definiert"
Was ist da los?
Übrigens benutze ich Office2000 Premium.
Gruss
Gerald


Michael Zimmermann

unread,
May 20, 2004, 9:42:12 AM5/20/04
to
Hallo!

Gerald Fleige:


> Schon bei der ersten Zeile der Prozedur
> DIM olApp As Outlook.Application bekomme ich diese
> Fehlermeldung.
> "Fehler beim Kompilieren: Benutzerdefinierter Typ nicht
> definiert"
> Was ist da los?

Du hast keinen Verweis auf die Outlook-Bibliothek gesetzt:

Extras > Verweise

Gruß aus Mainz
Michael

Henry Habermacher [MVP Access]

unread,
May 20, 2004, 11:09:22 AM5/20/04
to
Hallo Gerald

Gerald Fleige wrote in news:15d401c43e6c$c199d1d0$3501...@phx.gbl:

> ich möchte per Knopfdruck von einem Access-Formular Mails
> an verschiedene Adressaten schicken, die ich in Access
> gespeichert habe. Schon bei der ersten Zeile der Prozedur
> DIM olApp As Outlook.Application bekomme ich diese
> Fehlermeldung.
> "Fehler beim Kompilieren: Benutzerdefinierter Typ nicht
> definiert"
> Was ist da los?

Du verweist auf ein Objekt namens Outlook.Application, das in VBA nicht
definiert ist. Die Definition gibt's in Form einer TypeLibrary, welche
Du in die Verweise aufnehmen musst. Die Alternative dazu ist das von mir
bevorzugte Late Binding, weil es weniger Probleme auf anderen Rechnern
und anderen Versionen gibt, rsp. diese nicht zum Kompilierungszeitpunkt
kontrolliert werden (können), Du also die Möglichkeit hast, das
Nichtvorhandensein zu kontrollieren oder abhängig von der Version (ist
z.B. beim MailMerge Objekt von Word ab Word2000 notwendig) andere
Parameter setzen kannst.

In Deinem Fall würde das so aussehen (ungetestet):

Dim appOutlook As Object
Dim olMail As Object
On Error Resume Next
set appOutlook = CreateObject("Outlook.Application")
If Err.Number <> 0 then
Err.Clear
MsgBox "Outlook ist nicht installiert! Mailversand nicht möglich."
End If
On Error Goto ErrorHandler
Set olMail = appOutlook.CreateItem(1) '1 wäre hier z.B. ein olMailItem
...

Hier siehst Du auch, wo die dann Herausforderung bei der Entwicklung
liegt. Alle Konstanten, Objekte, Methoden und Eigenschaften der Outlook
Typelibrary sind im VBA Editor nicht bekannt und werden nicht
automatisch über IntelliSense angeboten. Du musst also die TypeLibrary
entweder auswendig können oder - so mache ich es - während der
Entwicklung auf Early Binding, also mit Verweis, wechseln und dann erst
vor der Auslieferung auf Late Binding wechseln.

Gruss
Henry


--
Keine E-Mails auf Postings in NGs senden!
Don't send e-mails to postings in newsgroups!
KB: http://support.microsoft.com/default.aspx
FAQ: http://www.donkarl.com/FAQ/FAQStart.htm
OH: Online Hilfe von Microsoft Access (Taste F1)
Downloads: http://www.dbdev.org

0 new messages