Restrict 方法

       

Items 集合应用筛选条件,返回一个新的集合,其中包含原始项目中所有匹配筛选条件的项目。该方法可代替使用 Find 方法或 FindNext 方法遍历集合内的特定项目。如果集合中只有少量项目,FindFindNext 方法要比筛选快。如果集合中项目较多,尤其是要在大型集合中查找少量项目时,Restrict 方法明显更快。

注意  如果将用户自定义的字段作为 FindRestrict 语句的一部分,则文件夹中必须存在该用户自定义字段,否则代码会产生错误,指出字段未知。可以通过显示“字段选择器”,然后单击“新建”,将字段添加到文件夹。

expression.Restrict(Filter)

expression   必选。该表达式返回 Items 对象。

Filter  必选,String 类型。要应用的筛选字符串表达式。有关详细信息,请参阅 Find 方法。

说明

该方法不能与下列属性一起使用,否则将产生错误:

Body

Categories

Children

Class

Companies

CompanyLastFirstNoSpace

CompanyLastFirstSpaceOnly

ContactNames

Contacts

ConversationIndex

DLName

Email1EntryID

Email2EntryID

Email3EntryID

EntryID

HTMLBody

IsOnlineMeeting

LastFirstAndSuffix

LastFirstNoSpace

LastFirstNoSpaceCompany

LastFirstSpaceOnly

LastFirstSpaceOnlyCompany

MemberCount

NetMeetingAlias

NetMeetingAutoStart

NetMeetingOrganizerAlias

NetMeetingServer

NetMeetingType

RecurrenceState

ReplyRecipients

ReceivedByEntryID

RecevedOnBehalfOfEntryID

ResponseState

Saved

Sent

Submitted

VotingOptions

示例

本 Visual Basic for Applications 示例使用 Restrict 方法获取所有与 Project X 有关的“收件箱”项目并将它们移到“Project X”文件夹中。

Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.GetNameSpace("MAPI")
Set myFolder =  _
    myNameSpace.GetDefaultFolder(olFolderInbox)
Set myItems = myFolder.Items
Set myRestrictItems = myItems.Restrict _     ("[Categories] = 'Project X'")
For Each myItem In myRestrictItems
    myItem.Move myFolder.Folders("Project X")
Next

如果使用 VBScript,您不必创建 Application 对象,而且也不能使用命名常量。本示例说明如何使用 VBScript 执行相同任务。

Set myNameSpace = Application.GetNameSpace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(6)
Set myItems = myFolder.Items
Set myRestrictItems = myItems.Restrict _     ("[Categories] = 'Project X'")
For Each myItem In myRestrictItems
    myItem.Move myFolder.Folders("Project X")
Next

本 Visual Basic for Applications 示例使用 Restrict 方法,根据项目的 LastModificationTime 属性将筛选条件应用于联系人项目。

Public Sub ContactDateCheck()
   Set myOlApp = CreateObject("Outlook.Application")
   Set myNameSpace = myOlApp.GetNamespace("MAPI")
   Set myContacts = myNameSpace.GetDefaultFolder(olFolderContacts).Items
   Set myItems = myContacts.Restrict("[LastModificationTime] > '05/15/97'")
   For Each myItem In myItems
       MsgBox myItem.FullName & ": " & MyItem.LastModificationTime
   Next
End Sub

以下 Visual Basic for Applications 示例除演示在筛选条件中使用变量外与上例相同。

Public Sub ContactDateCheck()
   Set myOlApp = CreateObject("Outlook.Application")
   Set myNameSpace = myOlApp.GetNamespace("MAPI")
   Set myContacts = myNameSpace.GetDefaultFolder(olFolderContacts).Items
   DateStart = #6/11/97#
   DateToCheck$ = "[LastModificationTime] >= """ & DateStart & """"
   Set myRestrictItems = myContacts.Restrict(DateToCheck$)
   For Each myItem In myRestrictItems
      MsgBox myItem.FullName & ": " & MyItem.LastModificationTime
   Next
End Sub