MS Outlook 干扰 Access vba 程序

Posted

技术标签:

【中文标题】MS Outlook 干扰 Access vba 程序【英文标题】:MS Outlook interferes with an Access vba procedure 【发布时间】:2016-08-30 15:37:43 【问题描述】:

我使用的是 Windows 7 企业版和 Office 2013 专业版。多年来,我一直在 Access 中使用以下程序在 Outlook 中一次向 200 位或更多客户发送电子邮件。这些程序使我能够个性化每封电子邮件和任何附件(通过 Word 邮件合并和 pdf)。它简单可靠,可以节省大量时间。最近,该程序受到 MS Outlook 的干扰。查看附件。它迫使我在每封电子邮件上单击“允许”,并使我的程序毫无用处。我通过电子邮件与三位 MS 帮助联系人进行了交谈,但他们无能为力。当时有人告诉我,这对代理人来说“技术性太强”,我被告知会被另一个人联系。至今没有人联系我。任何人都可以提出任何建议吗?这个问题最近才开始。我想知道是否应该尝试卸载 Office 的最新更新。 。这是我的程序:

Private Sub EmlSetUP_Click()

If IsNull(Me.Email) Then
    DisplayMessage ("No email address.")
    Exit Sub
Else
    RemoveSchma
    DoCmd.TransferText acExportMerge, "", "qryRetSlip", conAddrPth &   "\DataSource.txt", True, "", 1252
    SndEml
End If

End Sub

Sub SendEml()

Dim objOutlook As New Outlook.Application
Dim objMail As MailItem
Dim Subj As String
Dim Text As String
Dim PathName As String
Dim PathName2 As String

Subj = "DBS Checks"

Text = "I have received a payment for £53.00 which I cannot apply. The  only information given is 'DBS Check'." & vbCr & vbCr & _
   "I'm emailing all possible clients. Is it from you?" & vbCr & vbCr & _
   "Best wishes." & vbCr & vbCr & EmailSig

PathName = conDesktp & "\DBS Checks.xls"
PathName2 = conAddrPth & "\Documents Needed.pdf"

OpenWordDoc2

Set objOutlook = New Outlook.Application
Set objMail = objOutlook.CreateItem(olMailItem)

With objMail
.To = Email
.Subject = Subj
'.DeleteAfterSubmit = True
.Body = Text
.NoAging = True
.Attachments.Add PathName
.Attachments.Add PathName2
'.Display (True)
.Send
End With

Set objMail = Nothing
Set objOutlook = Nothing

End Sub


Private Sub EmlBulk_Click()

Dim rstForm As Recordset
Dim Wrng As Integer

Wrng = MsgBox("WARNING! This will immediately send an email to ALL client  managers." & vbCr & vbCr & "You will not be able to stop it!!!" _
          & vbCr & "Are you certain you have got the text of the email  and any attachments right?", vbCritical + vbDefaultButton2 + vbYesNo, "DBS  Database")

If Wrng = 7 Then
    Exit Sub
Else
    Set rstForm = Forms!frmClientEmail.Form.Recordset

    Do While Not rstForm.EOF
        If IsNull(Me.Email) Then
            rstForm.MoveNext
        Else
            RemoveSchma
            SndEml
            rstForm.MoveNext
        End If
    Loop
End If

DoCmd.Close acForm, "frmClientEmail"
DoCmd.OpenForm "Switchboard"

End Sub

【问题讨论】:

【参考方案1】:

请参阅http://www.outlookcode.com/article.aspx?id=52 了解讨论和您的选项列表。

基本上你的选择是

    安装最新的 AV 产品 扩展 MAPI(仅限 C++ 或 Delphi,无 VBA) 第三方产品,如Redemption 或ClickYes。

【讨论】:

我现在知道问题是怎么来的了。上次我使用我的程序(没有任何问题)时,我将卡巴斯基作为我的 AV。但是当我发现它干扰了我的 MS Azure 备份时,我卸载了它。因此,我最近的问题,现在通过 AVG 解决,它不会干扰 Azure。

以上是关于MS Outlook 干扰 Access vba 程序的主要内容,如果未能解决你的问题,请参考以下文章

从 Access 中的 VBA 调用时 Outlook.exe 进程未结束

将 Access 和 Outlook 与 VBA 集成以进行定期报告

使用 Access VBA 从 Outlook 获取附件

使用 VBA 保存和关闭办公程序(word、excel、access、outlook)以进行备份

如何使用 VBA 识别 MS Outlook 中的日历条目?

MS Access / Outlook 2010 - 如何选择从哪个帐户发送电子邮件?