【发布时间】:2012-12-04 05:38:35
【问题描述】:
我有这个 VBA 代码用于在我的 Access 数据库中发送电子邮件,并且我还引用了 Microsoft Outlook 14.0 对象库。
当我手动运行代码时,一切正常。但是,当我从 Windows 任务计划运行宏时,访问失败。我收到这条消息:
运行时错误“429”ActiveX 组件无法创建对象
在任务计划程序的“操作”选项卡中,我正在引用这样的宏: "C:\Program Files\Microsoft Office\Office14\MSACCESS.EXE" "C:\mydata\Database\mydatabase.accdb" /X RunMyMacro
错误似乎指向此代码,如下面的屏幕截图所示。
代码:
Dim strEmailBody As String
Sub emailNotification()
Dim oFolder As Outlook.MAPIFolder
Dim oItem As Outlook.MailItem
Dim oOutlook As New Outlook.Application
Dim MoOutlook As Outlook.NameSpace
Set MoOutlook = oOutlook.GetNamespace("MAPI")
Set oFolder = MoOutlook.GetDefaultFolder(olFolderOutbox)
Set oItem = oFolder.Items.Add(olMailItem)
With oItem
.Recipients.Add ("tome@me.com")
.Subject = "my notification"
.Body = strEmailBody
.Importance = olImportanceHigh
.Send
End With
Set oFolder = Nothing
End Sub
截图:
【问题讨论】:
-
可以在命令行中运行
"C:\Program Files\Microsoft Office\Office14\MSACCESS.EXE" "C:\mydata\Database\mydatabase.accdb" /X RunMyMacro吗? -
是的,当我在命令行中键入或粘贴以上内容时,它可以工作。这是任务计划程序的问题吗?
-
您是否尝试过编辑权限? superuser.com/questions/402070/…