【问题标题】:Creating Outlook distribution lists from Access从 Access 创建 Outlook 通讯组列表
【发布时间】:2014-07-30 08:55:01
【问题描述】:

我有一个带有联系人信息表和类别表的 Access 数据库。联系人被添加到类别中。我正在尝试使用 VBA 将它们作为联系人和通讯组列表导出到 Outlook。

第一步(设置联系人)正在运行。我的问题是创建分发列表。我发现只有一小部分(可能是 5%)实际上正确解析。我不知道为什么,因为已经解决的问题和未解决的问题之间似乎没有任何明显的区别。

在附加的代码中,相关的子代码是 CreateDLs。如果我将电子邮件地址添加到 olRecipients,我最终会解决所有问题,但只是名称和电子邮件地址相同的列表。这是暂时可用的,因为大多数人的电子邮件地址告诉我他们是谁。但是,如果我尝试按名称添加它们(注释掉的行),那么只有一小部分可以解决,但它们都是通过 ExportAccessContactsToOutlook 例程创建的。

我曾尝试通过 olRecipient 一次添加一个,我得到相同的结果,所以这似乎不是因为一次添加多个。

谁能建议可能发生的事情?

有没有一种方法可以一步添加整个联系人项目,而不仅仅是提供一个名称并希望得到正确解决?

我正在努力让我的代码正确粘贴,似乎只有部分代码被识别为代码。我使用 {} (CNTRL/K) 快捷方式并粘贴,但大部分内容不会出现在代码窗口中,并且它告诉我它的格式不正确。我直接从 VB 窗口中取出它。

【问题讨论】:

    标签: database vba email outlook


    【解决方案1】:

    您需要确保将联系人添加到配置为显示为地址簿的 Outlook 文件夹中。

    您还需要确保名称是唯一的,否则会出现名称不明确的错误。

    如果使用Redemption 是一个选项,则无需解析任何名称,因为您可以直接使用RDODistListItem.AddContact 将联系人添加到通讯组列表。类似的东西:

      set Session = CreateObject("Redemption.RDOSession")
      Session.MAPIOBJECT = Application.Session.MAPIOBJECT
      set Contacts = Session.GetDefaultFolder(olFolderContacts)
    
      set Contact = Contacts.Items.Add("IPM.Contact")
      Contact.FirstName = "Joe"
      Contact.FirstName = "User"
      Contact.Email1Address = "joe@demo.com"
      Contact.Save
    
      set DL = Contacts.Items.Add("IPM.DistList")
      DL.DLName = "Redemption test"
      DL.AddContact Contact
      DL.Save
    

    【讨论】:

    • 非常感谢。考虑到您的cmets,我采取了另一种方法,但没有成功。但是,我随后安装了 Redemption,它奏效了。这样编程也容易得多。我当然不会自己到达那里。
    猜你喜欢
    • 2019-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多