Mit dem VBA Code Builder in MS Access konnte ich Code schreiben, der Outlook öffnet, und mir per Mausklick eine E-Mail senden. Ich habe Probleme beim Hinzufügen eines Anhangs. Der meiste gefundene Code fügt Dateien außerhalb der MS-Datenbank als Anhang hinzu. Ich möchte einen in meiner Datenbank erstellten Bericht als Anhang hinzufügen.
Private Sub EmailReport_Click()
Dim oApp As New Outlook.Application
Dim oEmail As Outlook.MailItem
'Email the results of the report generated
Set oEmail = oApp.CreateItem(olMailItem)
oEmail.To = "[email protected]"
oEmail.Subject = "Training Roster"
oEmail.Body = "Roster Information"
With oEmail
.Send
MsgBox "Email Sent"
End With
Ich habe einen ähnlichen Befehl untersucht wie
oEmail.Attachments.Add Me.
Aber ich kann die richtige Kombination zum Hinzufügen meines Berichts nicht finden. Vielen Dank!!
Exportieren Sie Ihren Bericht wie erwähnt in eine externe Datei, z. B. PDF, um ihn an Ihre ausgehende E-Mail anzuhängen. Denken Sie daran, dass ein Bericht ein internes Access-Objekt ist und nicht ohne weiteres in einem Dateiformat für E-Mails vorliegt. Mit DoCmd.OutputTo können Sie das PDF dynamisch im Handumdrehen mit Datumsstempel und an demselben Speicherort als Datenbank für eine verallgemeinerbare Lösung für alle Benutzer erstellen.
Private Sub EmailReport_Click()
Dim oApp As New Outlook.Application
Dim oEmail As Outlook.MailItem
Dim fileName As string, todayDate As String
'Export report in same folder as db with date stamp
todayDate = Format(Date, "MMDDYYYY")
fileName = Application.CurrentProject.Path & "\ReportName_" & todayDate & ".pdf"
DoCmd.OutputTo acReport, "ReportName", acFormatPDF, fileName, False
'Email the results of the report generated
Set oEmail = oApp.CreateItem(olMailItem)
With oEmail
.Recipients.Add "[email protected]"
.Subject = "Training Roster"
.Body = "Roster Information"
.Attachments.Add fileName
.Send
End With
MsgBox "Email successfully sent!", vbInformation, "EMAIL STATUS"
Sie können Ihren Bericht als PDF per E-Mail mit folgendem Inhalt exportieren:
DoCmd.SendObject(ObjectType, ObjectName, OutputFormat, To, Cc, Bcc,Subject, MessageText, EditMessage, TemplateFile)
Wenn Sie DoCmd.SendObject
verwenden, müssen Sie Outlook Programmatic Access aktualisieren, um Warnungen zum automatischen Senden von E-Mails zu deaktivieren. In meinem Fall hat der Administrator der Domain die Änderung dieser Optionen aktiviert. Weitere Informationen hier .