Filtern von Elementen mithilfe eines Vergleichs mit einer Keywords-Eigenschaft

In der folgenden Erläuterung wird die Categories-Eigenschaft als Beispiel verwendet, die Erläuterung gilt jedoch auch für jede andere mehrwertige Zeichenfolgeneigenschaft.

Die Categories-Eigenschaft eines Elements entspricht dem Typ keywords, der mehrere Werte enthalten kann. Beim Vergleich mit einer Vergleichszeichenfolge in einem Filter entspricht das Verhalten der Categories-Eigenschaft dem einer Textzeichenfolge, in der die Werte durch ein Komma und ein Leerzeichen getrennt sind. Dies gilt für Filter mit Microsoft Jet-Syntax oder DASL-Syntax (DAV Searching and Locating).

Jet-Abfragen

In a Jet query, you can only perform phrase-matching on a keywords property. You cannot perform starts-with or substring matching with a Jet query. Consider the following criteria for Table.Restrict:

string filter  = "[Categories] = 'Partner'"

Diese Jet-Abfrage gibt Zeilen für Elemente zurück, bei denen die Categories -Eigenschaft des Elements eine Begriffübereinstimmung für Partner findet. Sie gibt Zeilen für Elemente zurück, die als Partner kategorisiert sind, für Elemente, die als Partner und Wichtig kategorisiert sind, sowie für Elemente, die als Premium Partner kategorisiert sind. Es werden keine Zeilen für Elemente zurückgegeben, die nur als Partnerschaft kategorisiert sind.

DASL-Abfragen

To overcome the limitations of keywords restrictions using the Jet query syntax, use DASL syntax which allows starts-with or substring restrictions. The following criteria string will find all items that contain Partner as a category, as one of the words in a category, and as the beginning part of a word in the category, such as the category Partnership:

criteria = "@SQL=" & Chr(34) _ 
& "urn:schemas-microsoft-com:office:office#Keywords" _ 
& Chr(34) & " ci_startswith 'Partner'"

Sie können eine DASL-Abfrage auch für Äquivalenzvergleiche in einer mehrwertigen Zeichenfolgeneigenschaft verwenden. Betrachten Sie ein Beispiel, bei dem Elemente mindestens eine der folgenden vier Kategorien besitzen:

  • Book

  • My Book

  • Book Review

  • Bookish

Die DASL-Äquivalenzabfrage:

criteria = "@SQL=" & Chr(34) _ 
& "urn:schemas-microsoft-com:office:office#Keywords" & Chr(34) _ 
& " = 'Book'"

gibt alle Elemente zurück, die Book als Kategorie haben, einschließlich solcher Elemente, die mit mehreren Kategorien kategorisiert sind, wobei Book eine der Kategorien ist. Die Abfrage gibt keine Elemente zurück, die " Book " nicht als Kategorie aufweisen.

If the multi-valued property is added to the Table using a reference by namespace, the format of the values of the property is a variant array. To access these values, parse the elements in the array. Using the last example, this would also allow you to obtain the items that contain exactly Partner as a category.

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.