Вызов Outlook Interop AdvancedSearch не выполняется с фильтром

Я пытаюсь запустить функцию AdvancedSearch в классе Outlook.Application, но получаю исключение с сообщением «Операция не удалась.». Как мне добиться успешного завершения?

Раньше я успешно использовал базовую функцию поиска для поиска в папке. Теперь мне нужен код, чтобы определить, дал ли поиск какие-либо результаты. Поэтому мне нужна функция расширенного поиска. Когда я вызываю функцию без указанного фильтра, Outlook успешно переходит к папке. Когда я включаю значение фильтра, возникает исключение. Я не проверяю его здесь, но свойство IsInstantSearchEnabled истинно.

Dim scope = $"'{searchFolder.FolderPath}'"
Dim searchAttachment = "https://schemas.microsoft.com/mapi/proptag/0x0EA5001E"
Dim filter = $"@SQL={Chr(34)}{searchAttachment}{Chr(34)} ci_phrasematch '{searchText}'"
Dim search = app.AdvancedSearch(scope, filter)

область действия: '\ ??? \ Inbox \ ???'

фильтр: @ SQL = "https://schemas.microsoft.com/mapi/proptag/0x0EA5001E" ci_phrasematch '???'

??? являются просто замененными значениями для этой публикации.


person David    schedule 11.04.2019    source источник


Ответы (1)


По-видимому, аргумент фильтра в AdvancedSearch требует, чтобы часть '@ SQL =' была опущена для работы, тогда как другие методы требуют этого. Удаление этой части веревки зафиксировало ее.

person David    schedule 12.04.2019