MS AccessのVBAコードビルダーを使用して、Outlookを開き、ボタンをクリックするだけで電子メールを送信するコードを作成することができました。添付ファイルの追加に問題があります。私が見つけたほとんどのコードは、MSデータベースの外部に添付ファイルとしてファイルを追加します。データベースで作成されたレポートを添付ファイルとして追加したいと思います。
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
私は次のようなコマンドを調べています
oEmail.Attachments.Add Me.
..しかし、レポートを追加するための正しい組み合わせが見つかりません。ありがとう!
前述のように、送信メールに添付するために、レポートを.pdfなどの外部ファイルにエクスポートします。レポートは内部Accessオブジェクトであり、電子メール用のファイル形式では容易ではないことに注意してください。 DoCmd.OutputTo を使用すると、すべてのユーザー向けの一般化可能なソリューションのデータベースとして、日付が刻印されたPDFをその場で動的に作成できます 同じ場所 。
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"
レポートをPDFとして電子メールで次のようにエクスポートできます:
DoCmd.SendObject(ObjectType, ObjectName, OutputFormat, To, Cc, Bcc,Subject, MessageText, EditMessage, TemplateFile)
DoCmd.SendObject
を使用する場合は、Outlook Programmatic Accessを更新して、電子メールの自動送信に関する警告をオフにする必要があります。私の場合、ドメインの管理者はこのオプションを変更できるようにしました。詳細情報 ここ 。