Wie kann man nun eine EMails aus Access heraus versenden?
Entweder verwendet man ein Hyperlinkfeld und dort als Anker mailto, DoCmd.SendObject oder man verwendet eine eigene Outlook-Instanz:
Set objOutlook = New Outlook.Application Set objNameSpace = objOutlook.GetNamespace("MAPI") Set objDefaultEMail = objNameSpace.GetDefaultFolder(olFolderOutbox) Set objEMail = objDefaultEMail.Items.Add(olMailItem) Set objAtt = objEMail.Attachments '//Verkürzen des Schreibaufwands With objEMail 'Empfänger .To = Me!txtEmpfaenger If Len(Nz(Me!txtKopie)) <> 0 Then .CC = Me!txtKopie If Len(Nz(Me!txtBCC, "")) <> 0 Then .BCC = Me!txtBCC 'Betreff .Subject = Me!txtBetreff If Len(Nz(Me!txtText, "")) <> 0 Then .Body = Me!txtText 'Wenn man eine HTML-Mail versenden möchte, muss man diese auch in HTML erstellen: '.HTMLBody = "Hallo Welt!" Select Case MsgBox("Soll diese EMail versendet werden oder wollen sie sie nur anzeigen?", _ vbYesNoCancel Or vbExclamation Or vbSystemModal Or vbDefaultButton2, "EMailversand") Case vbYes .Send Case vbNo .Display Case vbCancel GoTo Aufraeumen End Select End With '//Aufraeumen nicht vergessen! Aufraeumen: Set objOutlook = Nothing Set objNameSpace = Nothing Set objDefaultEMail = Nothing Set objEMail = Nothing
Wenn man auch noch Anhänge verwenden möchte, dann muss man diese auf folgende Weise an das MailObjekt übergeben:
objEMail.Attachments.Add CStr(Me!DeinFeld) 'Oder auch in Schleifen: With objEMail.Attachments .Add CStr(rs!DeinFeld) rs.MoveNext Wend