使用關鍵字屬性比較篩選項目
下列討論以 Categories 屬性做為範例,但也適用於任何多重值字串屬性。
項目的 Categories 屬性的類型為 keywords,可包含多個值。 在與篩選中的比較字串相比較時,Categories 屬性的表現就如同以逗點及空格將值分隔的文字字串。 使用 Microsoft Jet 語法或 DAV 搜尋及尋找 (DASL) 語法的篩選,也都是如此。
Jet 查詢
在 Jet 查詢中,您只能對關鍵字屬性執行片語比對。 您無法執行與 Jet 查詢的 starts-with 或 substring 比對。 請考慮 Table.Restrict的下列準則:
string filter = "[Categories] = 'Partner'"
此 Jet 查詢會針對 Categories 屬性中符合 Partner 片語比對的項目,來傳回該項目的列。 它會傳回分類為 Partner 的項目列、分類為 Partner 與 Important 的項目列,以及分類為 Tier1 Partner 的項目列。 這項查詢不會傳回分類為 Partnership 的項目列。
DASL 查詢
若要克服使用 Jet 查詢語法的關鍵字限制,請使用 DASL 語法,因為它允許 starts-with 或子字串限制。 下列準則字串會尋找含有 Partner 做為類別、做為類別中的字詞,以及做為類別中字詞開頭 (例如 Partnership 類別) 的所有項目:
criteria = "@SQL=" & Chr(34) _
& "urn:schemas-microsoft-com:office:office#Keywords" _
& Chr(34) & " ci_startswith 'Partner'"
您也可以使用 DASL 查詢,在多重值字串屬性中進行全等比對。 請考量項目包含下列四種類別之一或更多的範例:
Book
My Book
Book Review
Bookish
DASL 全等查詢:
criteria = "@SQL=" & Chr(34) _
& "urn:schemas-microsoft-com:office:office#Keywords" & Chr(34) _
& " = 'Book'"
會傳回類別有 Book 的項目,包括分類成多種類別,而且 Book 是其中一種類別的項目。 查詢不會傳回沒有 Book 做為類別的專案。
如果多重值屬性使用命名空間參照新增至 Table ,則屬性值的格式會是 Variant 陣列。 若要存取這些值,請剖析陣列元素。 就上一個範例而言,您也可以取得僅包含 Partner 類別的項目。
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。