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
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