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


Enumerating, Searching, and Filtering Items in a Folder

Объектная модель Outlook предоставляет несколько точек входа, которые поддерживают перечисление, поиск и фильтрацию элементов в папке.

Перечисление элементов

Объекты Items, Table и Selection поддерживают перечисление элементов в папке. Однако существуют определенные сценарии, в которых вы выбираете один из остальных.

Вы можете получить коллекцию Items , вызвав Folder.Items , которая возвращает элементы в папке. Каждый объект элемента в коллекции имеет все явные встроенные свойства и пользовательские свойства и поддерживает операции чтения и записи. Коллекция Items также поддерживает фильтры и события, которые срабатся при добавлении, изменении или удалении элементов из коллекции.

Используйте Folder.GetTable или Search.GetTable , чтобы получить объект Table , представляющий набор элементов в папке или папке поиска. В обоих случаях можно указать фильтр, чтобы получить подмножество элементов в папке, или, если не указать фильтр, получить все элементы в папке. По умолчанию каждый элемент возвращаемой таблицы содержит только подмножество свойств по умолчанию.

Вы можете просмотреть каждую строку таблицы как элемент в папке, каждый столбец — как свойство элемента, а таблица — это небольшой набор строк в памяти, который позволяет быстро перечислять и фильтровать элементы в папке. Хотя добавление и удаление базовой папки отражаются в строках в таблице, таблица не поддерживает никаких событий для добавления, изменения и удаления строк.

Если требуется записываемый объект из строки Table , получите идентификатор записи для этой строки из столбца EntryID по умолчанию в таблице , а затем используйте метод GetItemFromID объекта NameSpace , чтобы получить полный элемент, например MailItem или ContactItem, поддерживающий операции чтения и записи. Дополнительные сведения о столбцах по умолчанию в таблице см. в разделе Свойства efault, отображаемые в объекте Table.

Объект Selection поддерживает перечисление элементов, выбранных пользователем в настоящее время в обозревателе. Так как обозреватель отображает содержимое папки, объект Selection поддерживает перечисление элементов в этой папке в рамках выбора пользователем.

Примечание Папка в Outlook может содержать разнородные элементы. Например, папка "Контакты" по умолчанию поддерживает создание элементов контактов и списков рассылки. Поскольку объекты Items, Table и Selection инкапсулируют элементы в папке или папке поиска, элементы в них не обязательно имеют один и тот же класс сообщений. При перечислении элементов в этих коллекциях и объектах рекомендуется сначала проверить наличие класса сообщений каждого элемента перед доступом к свойствам элемента.

Поиск и фильтрация элементов

Объекты Items, Table, Application и View поддерживают поиск и фильтрацию элементов в папке. В следующей таблице описаны и сравниваются эти точки входа:

Точка входа Действие Объект фильтра поиска Поддержка фильтра Jet Поддержка фильтров DASL Comments
Application.AdvancedSearch Задает критерии для объекта Search и возвращает объект Search . Search.Results указывает результаты поиска. Search.Save обновляет папку поиска с результатами поиска. Folder Нет Да
Folder.GetTable Возвращает таблицу элементов в папке на основе любого заданного фильтра. Folder Да Да Некоторые свойства не поддерживаются в фильтре таблицы , включая двоичные свойства и содержимое текста HTML или RTF. Дополнительные сведения см. в разделе Неподдерживаемые свойства в объекте таблицы или фильтре таблиц.
Items.Find Выполняет поиск первого элемента, удовлетворяющего указанному фильтру. Folder Да Нет Некоторые свойства не поддерживаются в фильтре, включая текст. Дополнительные сведения см. в разделе Items.Find.
Items.Restrict Фильтрует заданный набор элементов на основе указанных ограничений и возвращает другую коллекцию Items . Folder Да Да Некоторые свойства не поддерживаются в фильтре, например Body. Дополнительные сведения см. в разделе Items.Restrict.
Search.GetTable Возвращает таблицу элементов в папке поиска на основе любого фильтра, производного от Application.AdvancedSearch. Папка поиска Нет Да Search.GetTable наследует фильтр от объекта Search (в частности, свойства Search.Filter ), возвращаемого из Application.AdvancedSearch.
Table.Restrict Фильтрует строки в заданной таблице на основе указанного фильтра и возвращает другой объект Table . Folder Да Да Некоторые свойства не поддерживаются в фильтре таблицы , включая двоичные свойства и содержимое текста HTML или RTF. Дополнительные сведения см. в разделе Неподдерживаемые свойства в объекте таблицы или фильтре таблиц.
View.Filter Задает фильтр представления без изменения XML-кода представления. Установка фильтра для представления изменяет только представление в пользовательском интерфейсе и не приводит к созданию отфильтрованной коллекции Items . Folder Нет Да
View.XML Возвращает или задает XML-код для представления. <Изменение узла Фильтр> изменяет фильтр представления. Задание XML-кода для представления изменяет только представление в пользовательском интерфейсе и не приводит к созданию отфильтрованной коллекции Items . Folder Нет Да Просмотр XML не рекомендуется. Используйте объектную модель View для программирования представлений.

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

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