VBA 2013限制与多个类别不工作Outlook项目

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

我写的VBA代码中调用访问Outlook中以过滤的电子邮件项目。的主要标准是,项目必须有2个类,例如MOPS,要被选择的PSA。

它首先用Access 2010中开发它并不在结束现在的工作。

我使用关键字限制方法如下:

Set rootItems = oFolderRoot.Items
strCategory = sGroupCompanyName & ", MOPS"
'>>>
filterCriteria = "[Categories] = " & QuoteWrap(strCategory)
Set objItems = rootItems.Restrict(filterCriteria)

所以,这里filterCriteria等于[类别] = 'PSA,MOPS'

任何帮助将不胜感激。

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

当应用使用Restrict方法的过滤器,过滤器和属性字符串必须完全(高达区分大小写),用于将被应用的过滤器相匹配。

由于邮件可能被分配到多个类别,你可以不依赖于每个类别将出现在编程访问Categories场时,返回的逗号分隔的字符串的顺序。

这在MSDN documentation描述:

关键字(或类别)

类别字段是一个类型关键字,它旨在容纳多个值。当编程,访问它时类别字段行为类似文本字段,并且字符串必须完全匹配。

在文本字符串值由逗号和空格分隔。这通常意味着,如果它包含多个值,你不能用一个关键词字段的FindRestrict方法。

因此,您的过滤器将需要考虑到这两种可能的情况下,使用的线沿线的过滤字符串:

Set rootItems = oFolderRoot.Items
Set objItems = rootItems.Restrict _
( _
    "[Categories] = '" & sGroupCompanyName & ", MOPS' OR " & _
    "[Categories] = 'MOPS, " & sGroupCompanyName & "'" _
)
© www.soinside.com 2019 - 2024. All rights reserved.