加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用Outlook对象筛选的_Items.Restrict方法时,“不支持使用like

发布时间:2020-12-16 01:12:06 所属栏目:百科 来源:网络整理
导读:背景: ? ? 用Microsoft.Office.Interop.Outlook取得日历项,然后根据业务要求筛

背景:

? ? 用Microsoft.Office.Interop.Outlook取得日历项,然后根据业务要求筛选。

?

现象:

? ? items.Restrict方法中的筛选器,使用like进行模糊查询时,会出COMException异常。

?

代码:

 1                 //folder取得前略
 2 
 3                 Outlook.Items items = folder.Items;
 4                 string rstFilter = "";
 5                 try
 6                 {
 7                     rstFilter = string.Format("[Subject] like '%{0}%'",会議");
 8                     items = items.Restrict(rstFilter);此处报异常
 9                 }
10                 catch (Exception ex)
11                 {
12                     MessageBox.Show(this
13,ex.Message + Environment.NewLine + rstFilter
14,this.Name
15,MessageBoxButtons.OK
1617                     return;
18                 }

?

异常:

? ? ?

?

原因:

? ? 将属性名括在方括号内的写法叫做“Jet 筛选器”。在 Jet 查询中,只能对关键字属性进行短语匹配。?

? ? 不能通过 Jet 查询进行开头或子字符串匹配即不支持like模糊查询

? ??为了克服使用 Jet 查询语法时关键字限制条件的局限性,请使用允许开头或子字符串限制条件的 DASL 语法。

?

解决:

? ??使用与 Keywords 属性的比较筛选项目

? ? 将筛选器字符串改为如下:

rstFilter = @SQL=http://schemas.microsoft.com/mapi/proptag/0x0037001f ci_phrasematch '{0}' ");

??

详情:

? ??Docs / Office VBA 参考 / Outlook / 操作说明主题 / 搜索和筛选 / 筛选 / 概述

?

其中使用DASL语法时,命名空间相关介绍:

? ? Docs / Office VBA 参考 / Outlook / 操作说明主题? / 导航 / 属性概述 / 按命名空间引用属性

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读