下面的讨论以
Categories
属性为例,但也适用于任何多值字符串属性。
项目的
Categories
属性是一种
关键字
类型的属性,可以包含多个值。 在与筛选器中的比较字符串进行比较时,
Categories
属性的行为就如同文本字符串一样,其中的值以逗号和空格进行分隔。 使用 Microsoft Jet 语法或 DAV 搜索和定位 (DASL) 语法的筛选器同样如此。
Jet 查询
在 Jet 查询中,只能对关键字属性进行短语匹配。 不能通过 Jet 查询进行开头或子字符串匹配。 假定有以下
Table.Restrict
条件:
string filter = "[Categories] = 'Partner'"
此 Jet 查询将返回在其 Categories 属性中找到 Partner 的短语匹配项的项目的行。 此查询将返回分类为 Partner 的项目、分类为 Partner 和 Important 的项目以及分类为 Tier1 Partner 的项目的行。 但不会返回仅分类为 Partnership 的项目的行。
DASL 查询
为了克服使用 Jet 查询语法时关键字限制条件的局限性,请使用允许开头或子字符串限制条件的 DASL 语法。 下面的条件字符串将查找包含 Partner 类别、类别中包含 Partner 一词、类别以 Partner 一词开头的所有项目,例如 Partnership 类别:
criteria = "@SQL=" & Chr(34) _
& "urn:schemas-microsoft-com:office:office#Keywords" _
& Chr(34) & " ci_startswith 'Partner'"
也可以使用 DASL 查询在多值字符串属性中进行等效匹配。 例如,一些项目具有以下四个类别中的一个或多个:
My Book
Book Review
Bookish
DASL 等效查询:
criteria = "@SQL=" & Chr(34) _
& "urn:schemas-microsoft-com:office:office#Keywords" & Chr(34) _
& " = 'Book'"
返回所有具有 Book 类别的项目,包括具有多个类别(其中包括 Book 类别)的项目。 该查询不会返回未将 Book 作为类别的项目。
如果使用按命名空间的引用将多值属性添加到 Table ,则该属性值的格式为变量数组。 若要访问这些值,请分析该数组中的元素。 使用上一示例也可以获取仅包含 Partner 类别的项目。
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。