如何使Access宏绕过Outlook对象模型保护

时间:2014-03-03 07:13:50

标签: ms-access macros outlook email-integration outlook-object-model

我在MS Access和MS Outlook之间的链接方面遇到了很多困难。两者都是2010版,我使用 EMailDatabaseObject 宏将报告发送到指定的电子邮件地址。它工作得很好,但是当我尝试运行宏时,我收到一条消息,指出:“程序正在尝试代表您发送电子邮件”,并询问我是否要允许(等待5秒后)或否认。

我已经研究过这个并意识到导致这个问题的是Outlook对象模型防护。我在两个程序中配置了选项,将信任中心更改为启用所有宏,将数据库文件位置添加到Access'受信任位置,在Outlook的程序访问下选中“从不警告我可疑活动”按钮,并使用所有这些设置,当我运行宏时,它仍然会询问恼人的安全警告。

其他解决方案显示了更改VBA脚本的方法,但我真的不了解或知道要更改内容的位置。我已将我的宏转换为Visual Basic,这是代码:

Option Compare Database

'------------------------------------------------------------
' AutoExec
'
'------------------------------------------------------------
Function AutoExec()
On Error GoTo AutoExec_Err

DoCmd.SendObject acReport, "Campus-Daily-Report", "PDFFormat(*.pdf)", "*To email goes here*", "", "", "Daily Report Test", "Please take a look at the attached.", False, ""


AutoExec_Exit:
Exit Function

AutoExec_Err:
MsgBox Error$
Resume AutoExec_Exit

End Function

我有一个名为AutoExec的宏,目的是让文件在文件打开时立即运行。

请帮忙,让我知道我可以使用的其他解决方案。如果它真的需要我改变上面的代码,我不确定如何更改宏的代码。我意识到,当我转换宏时,它变成另一个模块不能以相同的方式工作。 Access中没有选项可以查看宏的代码端。

非常感谢任何帮助。我更喜欢不会花费任何费用的解决方案,不管它采取什么方式。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

SendObject使用简单MAPI,无法绕过安全提示。

您可以确保安装了最新版本的防病毒产品(如果您可以控制客户端环境),那么使用Outlook对象模型和Redemption重写代码 - 请参阅http://www.outlookcode.com/article.aspx?id=52代表您的选项列表。