【问题标题】:Get Runtime error '429' ActiveX component can't create object when Macro run with Task Scheduler使用任务计划程序运行宏时获取运行时错误“429”ActiveX 组件无法创建对象
【发布时间】: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/…

标签: ms-access vba


【解决方案1】:

将以下代码放入批处理文件并从 Windows 调度程序运行批处理文件。

"C:\Program Files\Microsoft Office\Office14\MSACCESS.EXE" "C:\mydata\Database\mydatabase.accdb" /X RunMyMacro

【讨论】:

  • 实际上我只是尝试过并得到了同样的错误。这太臭了。
  • 是的,当我打开 bat 文件时,它会打开 Access 并成功运行宏。当我在命令中键入 bat 位置时,它也会成功运行宏。但任务调度失败。
  • 我已将问题隔离到代码的电子邮件部分,我只是注释掉了整个电子邮件代码,它工作正常。我想我会联系写剧本的书的作者。
  • 干得好,我希望你能解决这个问题。作为最后的手段,您总是可以使用 Total Access Emailer fmsinc.com/MicrosoftAccess/Emails.asp
猜你喜欢
  • 1970-01-01
  • 2013-04-13
  • 2011-02-08
  • 2015-04-24
  • 2016-04-24
  • 2021-08-04
  • 2013-06-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多