Поделиться через


Filtering a Custom Field

Настраиваемые свойства можно указать в фильтрах с помощью синтаксиса Microsoft Jet или синтаксиса поиска и поиска DASL (DASL). Пользовательские свойства должны быть определены в папке, в которой применяется фильтр. Если пользовательские свойства определены только в элементе, поиск завершится ошибкой.

Запросы Jet

Пользовательские свойства могут содержать пробелы в имени свойства. В запросе Jet, как и во всех ссылках на имена свойств, просто заключите имя пользовательского свойства в квадратные скобки. Например, следующий запрос Jet извлекает все контакты, в которых пользовательское свойство с именем "Preferred Gift" имеет точное значение "Diamonds". Для успешного выполнения запроса в папке, содержащей настраиваемые элементы контакта, было определено пользовательское свойство "Preferred Gift" (Предпочтительный подарок):

criteria = "[Preferred Gift] = 'Diamonds'"

Запросы DASL

В запросе DASL, если имя настраиваемого свойства содержит пробелы, необходимо применить кодировку URL-адреса к каждому символу пробела и заменить пробел на "%20". Как правило, кодировка URL-адреса применяется к символам в запросе DASL так же, как и в URL-адресе.

При создании запроса DASL для настраиваемого свойства необходимо использовать GUID пространства имен для пользовательских свойств Outlook в следующем формате:

https://schemas.microsoft.com/mapi/string/{GUID}/PropertyName

где {GUID} — это следующий GUID:

{00020329-0000-0000-C000-000000000046}

Фильтрация настраиваемых свойств, на которые ссылается пространство имен строки MAPI

Если настраиваемое свойство, для которых выполняется фильтрация, не существует в коллекции UserDefinedProperties для папки и если вы ссылаетесь на пользовательское свойство в пространстве имен строки MAPI, необходимо явно добавить описатель типа в представление пространства имен настраиваемого свойства. Обратите внимание, что тип необходимо указывать только при применении фильтра DASL для поиска и фильтрации точек входа в коллекции Items и объекте Table , а также к методу Application.AdvancedSearch .

Примечание Описатель шестнадцатеугольного типа должен иметь форму 0000HHHHH с 8 цифрами, а не 9. Дополнительные сведения о описателях шестиугольных типов (HHHH) для различных типов MAPI см. в разделе Типы свойств.

Например, если вы хотите использовать Items.Restrict для поиска настраиваемого свойства строки Юникода с именем "MyProperty", и это свойство не существует в коллекции UserDefinedProperties для папки, необходимо добавить описатель типа строки Юникода 0000001f к представлению свойства в пространстве имен строк MAPI:

criteria = "@SQL=" & Chr$(34) & "https://schemas.microsoft.com/mapi/string/" _ 
& "{00020329-0000-0000-C000-000000000046}/MyProperty"_ 
& "/0000001f" & Chr(34) & " = '12-74440'" 

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.