web-dev-qa-db-ja.com

Ms Accessは、レポートを添付ファイルとして電子メールを送信します

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.

..しかし、レポートを追加するための正しい組み合わせが見つかりません。ありがとう!

3
Stacy

前述のように、送信メールに添付するために、レポートを.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"
5
Parfait

レポートをPDFとして電子メールで次のようにエクスポートできます:

DoCmd.SendObject(ObjectType, ObjectName, OutputFormat, To, Cc, Bcc,Subject, MessageText, EditMessage, TemplateFile)
2
David

DoCmd.SendObjectを使用する場合は、Outlook Programmatic Accessを更新して、電子メールの自動送信に関する警告をオフにする必要があります。私の場合、ドメインの管理者はこのオプションを変更できるようにしました。詳細情報 ここ

0
user3627268