Partager via


Items.Find, méthode (Outlook)

Recherche et retourne un objet d’élément Microsoft Outlook qui satisfait au filtre donné.

Syntaxe

expression. Rechercher (Filtrer)

Expression Une expression qui renvoie un objetÉléments.

Paramètres

Nom Requis/Facultatif Type de données Description
Filter Obligatoire String Il s’agit d’une chaîne qui spécifie les critères auxquels l’objet retourné doit correspondre.

Valeur renvoyée

Une valeur Object (objet) qui représente un élément Outlook si l’appel aboutit ; retourne la valeur Null (ou Nothing dans Visual Basic) en cas d’échec.

Remarques

Pour utiliser la recherche par indexation de contenu dans la collection Items, utilisez la méthode Restrict. FindRow renverra une erreur si Filter contient des mots clés d’indexation de contenu. Pour plus d’informations sur les mots clés d’indexation de contenu, consultez l’article Filtrage d’éléments à l’aide de mots clés de requête.

La méthode retourne une erreur avec les propriétés suivantes dans le filtre :

Corps LastFirstNoSpaceCompany
Enfants LastFirstSpaceOnlyCompany
Classe 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

Création de filtre pour les méthodes Find et Restrict

La syntaxe du filtre varie selon le type de champ que vous filtrez.

String (pour les champs de type Text)

Lors du filtrage des champs Text (texte), vous pouvez utiliser une paire de guillemets simples (’) ou une paire de guillemets doubles (") pour délimiter les valeurs qui font partie du filtre. Par exemple, toutes les lignes suivantes fonctionnent correctement lorsque le champ est de type String :

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

Lorsque vous spécifiez un filtre dans une requête Jet ou DASL, si vous délimitez une chaîne appartenant au filtre à l’aide d’une paire de guillemets simples, mais que la chaîne contient déjà un guillemet simple ou une apostrophe, ajoutez un guillemet simple avant celui-ci ou celle-ci. Il servira de caractère d’échappement. Utilisez une approche similaire si vous utilisez une paire de guillemets doubles pour délimiter une chaîne. Si la chaîne contient des guillemets doubles, ajoutez des guillemets doubles en tant que caractère d’échappement devant les guillemets doubles.

Par exemple, dans la chaîne de filtre DASL qui filtre pour que la propriété Subject soit égale au mot can't, la chaîne de filtre entière est délimitée par une paire de guillemets doubles, et la chaîne can't incorporée est délimitée par une paire de guillemets simples. Cette chaîne de filtre contient trois caractères : le guillemet double de début et le guillemet double de fin pour la référence de propriété de http://schemas.microsoft.com/mapi/proptag/0x0037001f, et l’apostrophe dans la condition de valeur pour le mot can't. En appliquant les caractères d'échappement appropriés, vous pouvez exprimer la chaîne de filtre comme suit :

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

Vous pouvez également utiliser la chr(34) fonction pour représenter le guillemet double (dont la valeur de caractère ASCII est 34) utilisé comme caractère d’échappement. À l’aide de la substitution chr(34) pour représenter un guillemet double en tant que caractère d’échappement, vous pouvez exprimer le dernier exemple en procédant comme suit :

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

Vous devez aussi utiliser des guillemets simples et doubles en tant que caractères d’échappement pour les requêtes DASL avec les opérateurs ci_startswith ou ci_phrasematch. Par exemple, la requête suivante effectue une requête de correspondance d’expression pour can't dans l’objet du message :

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

Un autre exemple est une chaîne de filtre DASL qui filtre la propriété Subject comme étant égale aux mots the right stuff, où le mot stuff est entouré de guillemets doubles. Dans ce cas, vous devez échapper par des guillemets doubles englobants comme suit :

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

Un ensemble de règles d’échappement différent s’applique à une référence de propriété pour les propriétés nommées contenant l’espace, un guillemet simple, double guillemets ou caractère pourcentage. Pour plus d’informations, consultez l’article Référencement des propriétés par espace de noms.

Date

Bien que les dates et heures soient généralement stockées dans un format Date, les méthodes Find et Restrict nécessitent que la date et l’heure soient converties en une représentation sous forme de chaîne. Pour vous assurer que la date est correctement mise en forme dans Microsoft Outlook, utilisez la fonction Format. L’exemple suivant crée un filtre pour trouver tous les contacts qui ont été modifiés après le 15 janvier 1999 à 15:30.

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

Opérateurs booléens

Les opérateursBooléens, TRUE/ FALSE, YES/NO, ON/OFF, etc., ne doivent pas être convertis en chaîne. Par exemple, pour déterminer si la journalisation est activée pour les contacts, vous pouvez utiliser ce filtre :

sFilter = "[Journal] = True" 

Remarque

Si vous utilisez des guillemets comme délimiteurs avec des champs booléens , une chaîne vide trouvera les éléments dont les champs sont False et toutes les chaînes non vides trouveront les éléments dont les champs ont la valeur True.

Mots clés (ou catégories)

Le champCategories (Catégories) correspond au type d’élément « Keyword » (Mots-clés). Ce type est conçu pour contenir plusieurs valeurs. Lorsque vous accédez au champ Catégories via un programme, celui-ci se comporte comme un champ de texte, et la chaîne doit correspondre exactement à la valeur recherchée. Les valeurs dans la chaîne de texte sont séparées par une virgule et un espace. Cela signifie généralement que vous ne pouvez pas utiliser les méthodes Find et Restrict sur un champ de mots clés s'il contient plusieurs valeurs. Par exemple, si un contact appartient à la catégorie Business et si un contact appartient aux catégories Business et Social, il n'est pas facile d'utiliser les méthodes Find et Restrict pour extraire tous les éléments qui se trouvent dans la catégorie Business. Il est préférable, dans ce cas, d'effectuer une recherche dans les contacts du dossier et d'utiliser la fonction Instr pour vérifier si la chaîne « Business » est contenue dans le champ des mots clés.

Remarque

Une exception possible est si vous limitez le champ Catégories à deux, ou à un faible nombre de valeurs. Vous pouvez alors utiliser les méthodes Find et Restrict avec l’opérateur logique OR pour récupérer tous les contacts de la catégorie Business. Par exemple (en pseudocode) : « Business » OU « Business, Personal » OU « Personal, Business ». Les chaînes de catégorie ne respectent pas la casse.

Integer

Vous pouvez rechercher des champs Integer avec ou sans guillemets comme délimiteurs. Les filtres suivants trouveront les contacts créés avec Outlook 2000 :

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

Utilisation de variables dans le filtre

Comme nous l’avons vu dans l’exemple de la méthode Restrict, vous pouvez utiliser des valeurs extraites de variables dans un filtre. L’exemple de code Microsoft Visual Basic Scripting Edition (VBScript) suivant présente une syntaxe utilisant des variables dans un filtre.

sFullName = "Dan Wilson" 

Ici, nous utilisons Chr(34) pour délimiter la valeur :

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

Ici, nous utilisons des guillemets doubles pour délimiter la valeur :

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

Utilisation d’opérateurs logiques dans un filtre

Vous pouvez utiliser les opérateurs logiques AND, OR, et NOT. Voici différentes clauses de la méthode Restrict utilisant chacune l’un de ces opérateurs pour spécifier plusieurs critères.

OR : le code suivant renvoie tous les éléments du dossier Contact appartenant aux catégories Business ou Personal.

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

AND : Le code suivant extrait tous les contacts personnels travaillant à Microsoft.

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

NOT : le code suivant récupère tous les contacts personnels qui ne travaillent pas chez Microsoft.

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

Remarques supplémentaires

Si vous essayez d’utiliser les méthodesFind ou Restrict avec des champs définis par l’utilisateur, ces champs doivent être définis dans le dossier, sinon cela entraîne une erreur. Il n'existe aucun moyen d'effectuer une opération « contains (contient) ». Par exemple, vous ne pouvez pas utiliser Find ou Restrict pour rechercher des éléments dont le champ Objet contient un mot particulier. Il est préférable, dans ce cas, d'utiliser la méthode AdvancedSearch ou de parcourir l'ensemble des éléments dans le dossier et d'utiliser la fonction InStr pour effectuer une recherche dans un champ. Utilisez la méthode Restrict pour rechercher des éléments qui commencent dans une certaine plage de caractères. Par exemple, pour rechercher tous les contacts avec une dernière nom commençant par la lettre M, utilisez ce filtre :

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

Voir aussi

Éléments, objet

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.