如何使用 Access VBA 在 Outlook 中显示基于 EntryID 的电子邮件列表

问题描述 投票:0回答:1

我有一个与 Outlook 交互的 Access 数据库,捕获所选电子邮件的 EntryID(存储在 Access 的表中)。

我有代码可以使用 Outlook 的

GetItemFromID
方法按 EntryID 查看任何一封电子邮件。

我现在希望过滤 Outlook 主窗口,以根据保存的 EntryID 列表显示电子邮件。

为了澄清,如果我有一个包含三封电子邮件(及其各自的 EntryID)的列表,则 Outlook 主窗口将被过滤以显示这三封电子邮件。类似于搜索,但基于 EntryID。

有没有办法通过 VBA 添加搜索过滤器,根据 EntryID 进行搜索?

vba ms-access outlook
1个回答
1
投票

EntryID
等二进制属性不能用于 Outlook 中的任何搜索或筛选操作。您需要使用任何其他属性(自定义或用户定义的属性)来过滤 Outlook 中的项目。

View.Filter 属性值是一个字符串,采用 DAV 搜索和定位 (DASL) 语法,表示视图的当前过滤器。有关使用 DASL 语法过滤视图中的项目的更多信息,请参阅过滤项目

Private Sub FilterViewToLastWeek() Dim objView As View ' Obtain a View object reference to the current view. Set objView = Application.ActiveExplorer.CurrentView ' Set a DASL filter string, using a DASL macro, to show ' only those items that were received last week. objView.Filter = "%lastweek(""urn:schemas:httpmail:datereceived"")%" ' Save and apply the view. objView.Save objView.Apply End Sub
请注意,当项目在商店或文件夹之间移动时,

EntryID

 值可能会更改。此外,该值仅在每个商店都是唯一的。

如果您需要显示某些具有特定 EntryID 字符串的项目,您可以使用

GetItemFromID 方法获取这些项目实例,然后使用特定的用户属性标记它们,以便能够为其应用过滤器。或者只需将另一个字符串字段添加到数据库中,并使用自定义值,该值可以添加到 Outlook 中的项目中,这样您就可以轻松地在 UI 中应用过滤器。

© www.soinside.com 2019 - 2024. All rights reserved.