编译错误:不支持对象库功能Outlook.Application

时间:2017-06-23 09:32:05

标签: vba ms-access outlook

我的任务是在Microsoft Access系统上修复VB中的问题,我无法弄明白。此问题仅发生在运行该软件的5台PC之一上。 我试过了

  • 删除Outlook&访问并重新安装它。
  • 删除Microsoft Access应用程序并重新安装。
  • 更改了代码以匹配我在其他网站上找到的答案。

此代码会出错 enter image description here 代码如下。

    Dim objOutlook As Outlook.Application
    Dim objMailItem As MailItem
    Dim db As DAO.Database

    'Create email object and send attachment

    Set objOutlook = DetectOutlook()
    If objOutlook Is Nothing Then
        Set objOutlook = New Outlook.Application
    End If

我尝试按照其他网站的建议将其更改为此内容。

    Dim objOutlook As Object
    Dim objMailItem As MailItem
    Dim db As DAO.Database

    'Create email object and send attachment

   If GetObject(, "Outlook.Application") = True Then    'Outlook was already running
        Set objOutlook = GetObject(, "Outlook.Application")    'Bind to existing instance of Outlook
    Else    'Could not get instance of Outlook, so create a new one
        Set objOutlook = New Outlook.Application
    End If

此代码更改刚刚结束,强制Access在运行时关闭。 我是VB和Access Development的新手,所以这可能是一个简单的修复,如果您需要任何进一步的信息,请询问。其2016年微软FYI。 提前谢谢

4 个答案:

答案 0 :(得分:2)

我怀疑问题是对不同Outlook版本的错误引用。

如果您的用户环境可能使用不同版本的outlook或访问权限,则需要使用后期绑定。您发布的第二个代码是中途,但我建议您在这里阅读; http://sourcedaddy.com/ms-access/late-binding.html

答案 1 :(得分:2)

你可以试试Dreadfool在MSDN建议的一个奇怪的解决方法。它不需要您更改一行代码。

只需将宏保存到另一个文件中,然后将此新文件导入项目即可。这个简单的步骤在我的情况下有所帮助,当代码在更新365后停止工作时。

答案 2 :(得分:0)

在使用Office 2016 ProPlus 64位安装并行安装Visio 2016 64位后,Outlook宏已停止工作(相同的错误消息,但在" GetFolder"调用)。

首先尝试重新启动 - >没有效果。

然后尝试离线修复Office - >没有效果。

然后在线修复 - >让它再次运作。

答案 3 :(得分:0)

将Office升级到2019或Office 365版本时,您需要重新导入自定义开发,即vba中的所有模块,表单等。

只需将所有模块导出到一个文件夹中,将其删除并再次导入即可。它将解决问题。