0
我不知道VBA。有沒有辦法讓我有宏發送電子郵件的地方,報告將在電子郵件的正文中,而不是作爲附件?我目前使用「發送對象」命令並以html格式發送它,請建議。非常感謝你宏到電子郵件Accces報告不作爲附件
我不知道VBA。有沒有辦法讓我有宏發送電子郵件的地方,報告將在電子郵件的正文中,而不是作爲附件?我目前使用「發送對象」命令並以html格式發送它,請建議。非常感謝你宏到電子郵件Accces報告不作爲附件
如果你使用的是Outlook,你可以寫一個報告或查詢到磁盤並使用HTMLBody或RTFBody,這是一段時間,因爲我測試了這個,我希望它仍然有用。
Const ForReading = 1, ForWriting = 2, ForAppending = 3
Dim fs, f
Dim RTFBody
Dim MyApp As New Outlook.Application
Dim MyItem As Outlook.MailItem
DoCmd.OutputTo acOutputReport, "Report1", acFormatRTF, "Report1.rtf"
''DoCmd.OutputTo acOutputQuery, "Query1", acFormatHTML, "Query1.htm"
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.OpenTextFile("Report1.rtf", ForReading)
''Set f = fs.OpenTextFile("Query1.htm", ForReading)
RTFBody = f.ReadAll
''Debug.Print RTFBody
f.Close
Set MyItem = MyApp.CreateItem(olMailItem)
With MyItem
.To = "[email protected]"
.Subject = "Subject"
.RTFBody = RTFBody
''.HTMLBody = RTFBody
End With
MyItem.Display
這就是我用SendObject做的,它將報告作爲RTF附加在電子郵件的正文中。
Private Sub btnEmail_Click()
Dim IDnumber As Integer
Dim Message As String
Dim EmailTo As String
Dim FileName As String
'Get the current record's ID Number
IDnumber = Me![ID]
'set file name and path
FileName = Environ("USERPROFILE") & "\My Documents\temp.html"
'set email address
EmailTo = "[email protected]"
'get form to open a new record
DoCmd.GoToRecord , , acNewRec
'generate report for the current record entered
DoCmd.OpenReport "ReportName", acPreview, , "[ID]=" & IDnumber, acHidden
'create HTML file for the report
DoCmd.OutputTo acOutputReport, "ReportName", acFormatHTML, FileName
'open file
Open FileName For Input As #1
'read the file into a string
Message = Input(LOF(1) - 1, 1)
'close the file
Close 1
'generate email
DoCmd.SendObject acSendReport, "ReportName", acFormatRTF, EmailTo, , , "Subject", Message
'close the report
DoCmd.Close acReport, "ReportName"
'suppress errors if file is not there
On Error Resume Next
'remove file
Kill FileName
End Sub