【发布时间】:2015-08-18 22:30:32
【问题描述】:
我有以下 VBA Access 代码,它工作正常,除了当用户决定关闭 Outlook 窗口并决定不发送电子邮件时,Access 界面冻结:
Dim strSubject As String
strSubject = "Receipt number: " & [Reports]![RCPT_MAIN_EMAIL].[RECEIPT]
Dim strBody As String
strBody = "Dear Sir/Madam," & vbCrLf
strBody = strBody & "Attached Receipt number " & [Reports]![RCPT_MAIN_EMAIL].[RECEIPT] & " for your payment." & vbCrLf
DoCmd.SendObject acReport, "RCPT_MAIN_EMAIL", acFormatPDF, [Reports]![RCPT_MAIN_EMAIL].[Email], "123@test.com", "", strSubject, strBody, True, ""
'DoCmd.Close acReport, "RCPT_MAIN_EMAIL", acSaveNo
send_res_email_Exit:
DoCmd.Close acReport, "RCPT_MAIN_EMAIL", acSaveNo
Exit Function
send_res_email_Err:
MsgBox Error$
Resume send_res_email_Exit
End Function
这基本上是打开一个隐藏的表单,读取 EMAIL 值并通过 Outlook 发送电子邮件。但是,如果用户决定关闭 Outlook 消息窗口,它会给出一条消息,指出 SendObject 已取消并冻结。
【问题讨论】: