2012-05-22 59 views
1

在此先感謝您的幫助。我有以下代碼,點擊後會創建一封電子郵件,插入正文和客戶電子郵件地址並附上發票副本。我有兩個問題,一個是可以更改附加文件的名稱,目前它只是invoiceF.pdf可以做的,它是交付的參考。其次,是否有可能捕獲發送郵件的結果?我知道如果電子郵件沒有發送,只是關閉,訪問將信息框放在說「發送對象操作已取消」,我想趕上「成功發送」的確認,並添加今天的日期到一個框[invoiceemailed]。由於任何人事先他們的幫助:)訪問 - 如何返回sendmail的結果?

Private Sub emailinvoiceF_Click() 
On Error GoTo Err_emailinvoiceF_Click 

If MsgBox("Email the invoice?", vbYesNo) = vbYes Then 

Dim strMessage 
strMessage = "Dear " & First & " " & Last & "," _ 
& vbCrLf & vbCrLf & "Thank you for your order: (" & DeliveryID & "), please find attached invoice." _ 
& vbCrLf & vbCrLf & "If you require any further information please do not hesitate to contact us." _ 
& vbCrLf & vbCrLf & "Kind Regards," _ 
& vbCrLf & vbCrLf & "SMI Hardwoods" _ 
& vbCrLf & vbCrLf & "Tel: 01206 396725" _ 
& vbCrLf & vbCrLf & "www.smi-hardwoods.com" _ 


    Dim stDocName As String 

    stDocName = "InvoiceF" 
    DoCmd.SendObject acReport, stDocName, acFormatPDF, [E-mail address], , , "SMI Hardwoods Invoice Ref:" & DeliveryID & ".pdf", strMessage 
End If 

Exit_emailinvoiceF_Click: 
    Exit Sub 

Err_emailinvoiceF_Click: 
    MsgBox Err.Description 
    Resume Exit_emailinvoiceF_Click 

End Sub 

回答

1

DoCmd.SendObject命令是非常有限的。它不允許你從磁盤上附加文件。由於此限制,您無法控制使用DoCmd.SendObject附加的文件名和文件數量。

您可能會發現這篇文章有幫助:http://msdn.microsoft.com/en-us/library/aa167323(v=office.11).aspx

我用Outlook.Application對象在過去,發現它確定。它允許在發送電子郵件之前進行一些用戶交互。此外,它直接進入Outlook,因此跟蹤可能更容易。不過,這種方法有其自身的缺點。

根據你就成功消息的問題,您可以添加以下代碼:

.... 
    DoCmd.SendObject acReport, stDocName, acFormatPDF, [E-mail address], , , "SMI Hardwoods Invoice Ref:" & DeliveryID & ".pdf", strMessage 

    'Display success message 
    MsgBox("Successfully sent on: " & Date()) 
End If 

Exit_emailinvoiceF_Click: 
    Exit Sub 
...