Filtrando itens usando uma comparação com uma propriedade de palavras-chave

A discussão a seguir usa a propriedade Categories como exemplo, mas se aplica também a qualquer propriedade de sequência de caracteres de valores múltiplos.

A propriedade Categories é do tipo keywords, criada para conter valores múltiplos. Ao ser comparada com uma sequência de caracteres de comparação em um filtro, a propriedade Categories comporta-se como uma sequência de caracteres de texto onde os valores são separados por vírgula e um espaço. Isso acontece nos filtros que usam sintaxe Microsoft Jet ou DASL.

Consultas Jet

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. Considere os seguintes critérios para Table.Restrict:

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

This Jet query will return rows for items where the Categories property for the item finds a phrase-match for Partner. It will return rows for items that are categorized as Partner, for items that are categorized as Partner and Important, and for items that are categorized as Tier1 Partner. It will not return rows for items that are categorized only as Partnership.

Consultas DASL

Para superar as limitações das restrições de palavras-chave usando a sintaxe de consulta jet, use a sintaxe DASL que permite restrições de início ou substring. A cadeia de critérios a seguir encontrará todos os itens que contêm o Partner como uma categoria, como uma das palavras em uma categoria e como a parte inicial de uma palavra na categoria, como a categoria Parceria:

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

You can also use a DASL query for equivalence matching in a multi-valued string property. Consider an example where items have one or more of the following four categories:

  • Livro

  • My Book

  • Book Review

  • Bookish

The DASL equivalence query:

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

returns any item that has Book as a category, including those categorized with multiple categories, where Book is one of the categories. A consulta não retorna itens que não têm o Livro como categoria.

Se a propriedade de vários valores for adicionada à Tabela usando uma referência por namespace, o formato dos valores da propriedade será uma matriz de variante. Para acessar esses valores, analise os elementos na matriz. Usando o último exemplo, isso também permitiria obter os itens que contêm exatamente o Partner como uma categoria.

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.