Items.Find-Methode (Outlook)

Sucht ein Microsoft Outlook-Elementobjekt, das den angegebenen Filter erfüllt, und gibt es zurück.

Syntax

Ausdruck. Suchen (Filter)

Ausdruck Ein Ausdruck, der ein Element-Objekt zurückgibt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
Filter Erforderlich String Eine Zeichenfolge, die die Kriterien angibt, die das zurückgegebene Objekt erfüllen muss.

Rückgabewert

Ein Object-Wert , der ein Outlook-Element darstellt, wenn der Aufruf erfolgreich ist; gibt Null (oder Nothing in Visual Basic) zurück, wenn ein Fehler auftritt.

HinwBemerkungeneise

Um die Inhaltsindizierungssuche in der Items-Auflistung zu verwenden, verwenden Sie die Restrict-Methode . FindRow gibt einen Fehler zurück, wenn Filter Schlüsselwörter für die Inhaltsindizierung enthält. Weitere Informationen zu Schlüsselwörtern für die Inhaltsindizierung finden Sie unter Filtern von Elementen mithilfe von Abfrageschlüsselwörtern.

Die -Methode gibt einen Fehler mit den folgenden Eigenschaften im Filter zurück:

Body LastFirstNoSpaceCompany
Children LastFirstSpaceOnlyCompany
Class LastFirstNoSpaceAndSuffix
Companies MemberCount
CompanyLastFirstNoSpace NetMeetingAlias
CompanyLastFirstSpaceOnly NetMeetingAutoStart
ContactNames NetMeetingOrganizerAlias
Contacts NetMeetingServer
ConversationIndex NetMeetingType
DLName RecurrenceState
Email1EntryID ReplyRecipients
Email2EntryID ReceivedByEntryID
Email3EntryID ReceivedOnBehalfOfEntryID
EntryID ResponseState
HTMLBody Saved
IsOnlineMeeting Sent
LastFirstAndSuffix Submitted
LastFirstNoSpace VotingOptions
AutoResolvedWinner DownloadState
BodyFormat IsConflict
InternetCodePage MeetingWorkspaceURL
Permission

Erstellen von Filtern für die Methoden "Find" und "Restrict"

Die Syntax für den Filter variiert je nach dem Typ des Felds, das Sie filtern möchten.

String (für Textfelder)

Beim Filtern von Textfeldern können Sie entweder ein Paar einfache Anführungszeichen (') oder ein Paar doppelte Anführungszeichen (") verwenden, um die Werte zu trennen, die Teil des Filters sind. Beispielsweise funktionieren alle folgenden Zeilen ordnungsgemäß, wenn das Feld vom Typ String ist:

sFilter = "[CompanyName] = 'Microsoft'"  
sFilter = "[CompanyName] = ""Microsoft"""  
sFilter = "[CompanyName] = " & Chr(34) & "Microsoft" & Chr(34)

Wenn Sie beim Festlegen eines Filters in einer Jet- oder DASL-Abfrage zum Begrenzen einer Zeichenfolge, die Teil des Filter ist, ein Paar einfache Anführungszeichen verwenden und die Zeichenfolge ein weiteres einfaches Anführungszeichen oder ein Apostroph enthält, fügen Sie vor dem einfachen Anführungszeichen oder dem Apostroph ein einfaches Anführungszeichen als Schutzzeichen hinzu. Verwenden Sie einen ähnlichen Ansatz, wenn Sie ein Paar doppelter Anführungszeichen verwenden, um eine Zeichenfolge zu trennen. Wenn die Zeichenfolge ein doppeltes Anführungszeichen enthält, fügen Sie ein doppeltes Anführungszeichen als Schutzzeichen vor dem doppelten Anführungszeichen hinzu.

Beispielsweise wird in der DASL-Filterzeichenfolge, die filtert, dass die Subject-Eigenschaft gleich dem Wort can'tist, die gesamte Filterzeichenfolge durch ein Paar von doppelten Anführungszeichen getrennt, und die eingebettete Zeichenfolge can't wird durch ein Paar einzelner Anführungszeichen getrennt. In dieser Filterzeichenfolge müssen drei Zeichen mit Escapezeichen versehen werden: das beginnende doppelte Anführungszeichen und das endende doppelte Anführungszeichen für den Eigenschaftenverweis von http://schemas.microsoft.com/mapi/proptag/0x0037001fund das Apostroph in der Wertbedingung für das Wort can't. Durch Anwendung der geeigneten Escapezeichen kann die Filterzeichenfolge wie folgt ausgedrückt werden:

filter = "@SQL=""http://schemas.microsoft.com/mapi/proptag/0x0037001f"" = 'can''t'"

Alternativ können Sie die chr(34) -Funktion verwenden, um das doppelte Anführungszeichen (dessen ASCII-Zeichenwert 34 ist) darzustellen, das als Escapezeichen verwendet wird. Unter Verwendung der chr(34)-Ersetzung für ein doppeltes Anführungszeichen als Escapezeichen können Sie das letzte Beispiel wie folgt ausdrücken:

filter = "@SQL= " & Chr(34) & "http://schemas.microsoft.com/mapi/proptag/0x0037001f" _& Chr(34) & " = " & "'can''t'"

Das Escapen von einfachen und doppelten Anführungszeichen ist ebenfalls in DASL-Abfragen mit den Operatoren ci_startswith und ci_phrasematch erforderlich. Folgende Abfrage führt beispielsweise eine Begriffvergleichsabfrage für can't im Nachrichtenbetreff aus:

filter = "@SQL=" & Chr(34) & "http://schemas.microsoft.com/mapi/proptag/0x0037001E" _& Chr(34) & " ci_phrasematch " & "'can''t'"

Ein weiteres Beispiel ist eine DASL-Filterzeichenfolge, die nach der Subject-Eigenschaft filtert, die gleich den Wörtern the right stuffist, wobei das Wort stuff in doppelte Anführungszeichen eingeschlossen wird. In diesem Fall müssen die umschließenden doppelten Anführungszeichen wie folgt escapet werden:

filter = "@SQL=""http://schemas.microsoft.com/mapi/proptag/0x0037001f"" = 'the right ""stuff""'"

Ein anderer Satz von Schutzregeln gilt für eine Eigenschaftsreferenz für benannte Eigenschaften, die ein Leerzeichen, einfache Anführungszeichen, doppelte Anführungszeichen oder ein Prozentzeichen enthalten. Weitere Informationen finden Sie unter Eigenschaften nach Namespace referenzieren.

Date

Obwohl Datums- und Uhrzeitangaben in der Regel im Date-Format gespeichert werden, erfordern die Find - und Restrict-Methoden , dass Datum und Uhrzeit in eine Zeichenfolgendarstellung konvertiert werden. To make sure that the date is formatted as Outlook expects, use the Format function. The following example creates a filter to find all contacts that have been modified after January 15, 1999 at 3:30 P.M.

sFilter = "[LastModificationTime] > '" & Format("1/15/99 3:30pm", "ddddd h:nn AMPM") & "'"

Boolesche Operatoren

Boolesche Operatoren, TRUE/ FALSE, JA/NEIN, EIN/AUS usw. sollten nicht in eine Zeichenfolge konvertiert werden. Um festzustellen, ob das Journaling für Kontakte aktiviert ist, können Sie z. B. diesen Filter verwenden:

sFilter = "[Journal] = True" 

Hinweis

Wenn Sie Anführungszeichen als Trennzeichen in Feldern vom Typ Boolean verwenden, dann werden bei einer leeren Zeichenfolge die Felder gefunden, deren Wert False ist, und durch alle nicht leeren Zeichenfolgen werden Elemente gefunden, deren Felder den Wert True haben.

Keywords (oder Categories)

Das Feld Kategorien ist vom Typ Schlüsselwörter, das für mehrere Werte konzipiert ist. When accessing it programmatically, the Categories field behaves like a Text field, and the string must match exactly. Values in the text string are separated by a comma and a space. This typically means that you cannot use the Find and Restrict methods on a keywords field if it contains more than one value. For example, if you have one contact in the Business category and one contact in the Business and Social categories, you cannot easily use the Find and Restrict methods to retrieve all items that are in the Business category. Instead, you can loop through all contacts in the folder and use the Instr function to test whether the string "Business" is contained within the entire keywords field.

Hinweis

Eine mögliche Ausnahme ist, wenn Sie das Feld Kategorien auf zwei oder eine geringe Anzahl von Werten beschränken. Anschließend können Sie die Methoden Find und Restrict mit dem logischen OPERATOR OR verwenden, um alle Geschäftskontakte abzurufen. Beispiel (in Pseudocode): "Business" ODER "Business, Personal" ODER "Personal, Business". Bei Kategoriezeichenfolgen wird die Groß-/Kleinschreibung nicht beachtet.

Integer

Das Durchsuchen von Feldern vom Typ Integer ist sowohl mit als auch ohne Anführungszeichen und Trennzeichen möglich. Mithilfe folgender Filter wird nach Kontakten gesucht, die in Outlook 2000 erstellt wurden:

sFilter = "[OutlookInternalVersion] = 92711"  
sFilter = "[OutlookInternalVersion] = '92711'"

Verwenden von Variablen in Filtern

Wie das Beispiel mit der Restrict-Methode zeigt, können Werte aus Variablen als Teil des Filters verwendet werden. Das folgende Codebeispiel für Microsoft Visual Basic Scripting Edition (VBScript) zeigt die Syntax, in der Variablen als Teil des Filters verwendet werden.

sFullName = "Dan Wilson" 

Bei diesem Ansatz wird "Chr(34)" zum Begrenzen des Werts verwendet:

sFilter = "[FullName] = " & Chr(34) & sFullName & Chr(34)

Bei diesem Ansatz werden doppelte Anführungszeichen zum Begrenzen des Werts verwendet:

sFilter = "[FullName] = """ & sFullName & """"

Verwenden von logischen Operatoren in Filtern

Es können die logischen Operatoren AND, OR und NOT verwendet werden. Es folgen einige Variationen für die Restrict-Methode, sodass Sie mehrere Kriterien angeben können.

OR: Der folgende Code gibt alle Kontaktelemente zurück, deren Kategorie entweder "Business" oder "Personal" ist.

sFilter = "[Categories] = 'Personal' Or [Categories] = 'Business'" 

AND: Der folgende Code ruft alle persönlichen Kontakte auf, die bei Microsoft arbeiten.

sFilter = "[Categories] = 'Personal' And [CompanyName] = 'Microsoft'"

NOT: Der folgende Code ruft alle persönlichen Kontakte auf, die nicht bei Microsoft arbeiten.

sFilter = "[Categories] = 'Personal' And Not([CompanyName] = 'Microsoft')"

Zusätzliche Hinweise

Wenn Sie die Find- oder Restrict-Methode in benutzerdefinierten Feldern verwenden möchten, müssen die Felder im Ordner definiert sein, da andernfalls ein Fehler auftritt. Es gibt keine Möglichkeit, eine "contains"-Operation auszuführen. Sie können z. B. nicht mithilfe der Methode Find oder Restrict nach Elementen suchen, die ein bestimmtes Wort im Feld Betreff enthalten. Verwenden Sie stattdessen die AdvancedSearch-Methode, oder durchlaufen Sie alle Elemente im Ordner in einer Schleife, und verwenden Sie die InStr-Funktion, um eine Suche innerhalb eines Felds auszuführen. Verwenden Sie die Restrict-Methode , um nach Elementen zu suchen, die innerhalb eines bestimmten Zeichenbereichs beginnen. Verwenden Sie z. B. den folgenden Filter, um nach allen Kontakten mit einem Nachnamen zu suchen, der mit dem Buchstaben "M" beginnt:

sFilter = "[LastName] > 'LZZZ' And [LastName] < 'N'"

Siehe auch

Items-Objekt

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.