vba - 从 Access 中打开 Outlook 的后期绑定(bind)

标签 vba ms-access outlook

当交换机加载时,我正在尝试从 Access VBA 打开 Outlook 应用程序。我打开了任务管理器,我可以看到一个 Outlook 实例出现大约 5 秒钟然后关闭,但我无法打开资源管理器窗口。我一直在尝试拼凑 VBA: Determining whether an existing Outlook instance is open 中的代码和其他来源,但它只是不起作用。有任何想法吗?

而且我想坚持使用后期绑定(bind),因此如果有人使用 XP 打开,我不必担心对象库。

Function OpenEmail()

Dim olApp As Object ' Outlook.Application
Dim olFolderInbox As Object
Dim objExplorer As Object

On Error Resume Next

Set olApp = GetObject(, "Outlook.Application")

If olApp Is Nothing Then
    MsgBox "Outlook is not Open"
    Set olApp = CreateObject("Outlook.Application")
End If

Set objExplorer = CreateObject("Outlook.MAPIFolder")
Set objExplorer = olApp.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)

objExplorer.Activate

'Set olApp = Nothing

End Function

最佳答案

Outlook 是唯一的 MS Office 应用程序,GetObjectCreateObject 做同样的事情.与其他 MS Office 应用程序不同,CreateObject不会创建 Outlook 的多个实例。

还有olFolderInbox是一个前景常数。您必须在 ACCESS 中定义它。

试试这个

Const olFolderInbox As Long = 6

Sub Sample()
    Dim olApp As Object
    Dim objNS As Object
    Dim olFolder As Object

    Set olApp = CreateObject("Outlook.Application")
    Set objNS = olApp.GetNamespace("MAPI")
    Set olFolder = objNS.GetDefaultFolder(olFolderInbox)

    With olFolder
        '~~> Do what you want
    End With
End Sub

关于vba - 从 Access 中打开 Outlook 的后期绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19184650/

相关文章:

vba - 我可以遍历文件夹(包括子文件夹)中的所有 Outlook 电子邮件吗?

python - 从 IronPython Access MS Access 时出现问题

sql - 将 MS Access 迁移到 MySQL

java - 在 Outlook 中触发外部 API 调用,回复来自特定电子邮件 ID 的电子邮件

excel - 访问文件时出错。网络连接可能已丢失

excel - 将工作表的动态范围导出到单个 PDF 文档

ms-access - set dbs=currentdb() 和直接使用 currentDB() 之间有什么重要区别吗?

html - 在带有表格标签的基本 html 代码的 outlook 中没有得到正确的输出

linux - 基于 Linux 的解决方案初学者指南,用于从 MS Outlook 的 .pst 文件中读取邮件内容(包括附件)

excel - 在 VBA 中使用 Excel 中的公式创建函数