_Application.AdvancedSearch(String, Object, Object, Object) 方法

定义

根据指定的 DAV 搜索和定位 (DASL) 搜索字符串进行搜索。

public Microsoft.Office.Interop.Outlook.Search AdvancedSearch (string Scope, object Filter, object SearchSubFolders, object Tag);
Public Function AdvancedSearch (Scope As String, Optional Filter As Object, Optional SearchSubFolders As Object, Optional Tag As Object) As Search

参数

Scope
String

搜索范围。 例如文件夹路径。 建议使用单引号引起文件夹路径。 否则,如果文件夹路径包含特殊字符(包括 Unicode 字符),搜索可能不会返回正确结果。 若要指定多个文件夹路径,请用单引号引起每个文件夹路径,然后再用逗号隔开这些文件夹路径。

Filter
Object

定义搜索参数的 DASL 搜索筛选器。

SearchSubFolders
Object

确定搜索是否包括文件夹的子文件夹。

Tag
Object

指定作为搜索标识符的名称。

返回

一个 Search 对象,表示搜索结果。

注解

通过调用 AdvancedSearch 方法在连续行代码中,可以同时运行多个搜索。 但是,应该注意: 以编程方式创建大量的搜索文件夹会导致重大同时搜索活动会影响性能的 Outlook 中,在尤其是 Outlook 进行联机 Exchange 模式搜索。

Outlook 对象模型中的 AdvancedSearch 方法和相关功能不会创建将在 Outlook 用户界面中显示的搜索文件夹。 但是,可以使用 Save(String) 返回的 Search 对象的 方法创建一个搜索文件夹,该搜索文件夹将显示在 Outlook 用户界面的“搜索文件夹”列表中。

Scope使用 参数,可以指定同一存储区中的一个或多个文件夹,但不能在多个存储区中指定多个文件夹。 若要为 Scope 参数指定多个文件夹,请在每个文件夹路径之间使用逗号字符,并将每个文件夹路径括在单引号中。 如收件箱或已发送邮件的默认文件夹,可以使用简单的文件夹名称而不是完整的文件夹路径。 例如,以下代码行表示有效 Scope 参数:

Dim Scope As String = "'Inbox', 'Sent Items'" string Scope = "'Inbox', 'Sent Items'";

Dim Scope1 As String = "'" & Application.Session.GetDefaultFolder( _
    Outlook.OlDefaultFolders.olFolderInbox).FolderPath & _
    "','" & Application.Session.GetDefaultFolder( _
    Outlook.OlDefaultFolders.olFolderSentMail).FolderPath
string Scope1 = "'" + Application.Session.GetDefaultFolder( 
    Outlook.OlDefaultFolders.olFolderInbox).FolderPath + 
    "','" + Application.Session.GetDefaultFolder( 
    Outlook.OlDefaultFolders.olFolderSentMail).FolderPath;

参数 Filter 可以是任何有效的 DASL 查询。 有关 DASL 查询的其他信息,请参阅按命名空间筛选项和引用属性。 请注意,不能对 Filter 高级搜索的参数使用 JET 查询。 如果在包含 参数中指定的 Scope 文件夹的存储中启用了即时搜索,则可以使用即时搜索关键字来提高搜索性能。 如果使用即时搜索关键字并不启用了即时搜索,则 Outlook 会返回错误,搜索将失败。

适用于