Partager via


_Items.Find(String) Méthode

Définition

Localise et retourne un objet d’élément Outlook qui satisfait au donné Filter.

public:
 System::Object ^ Find(System::String ^ Filter);
public object Find (string Filter);
Public Function Find (Filter As String) As Object

Paramètres

Filter
String

Chaîne qui spécifie les critères auxquels doit correspondre l'objet renvoyé.

Retours

Valeur Object qui représente un élément Outlook si l’appel réussit ; retourne Nothing (référence null (Nothing en Visual Basic) en C#) en cas d’échec.

Remarques

Pour utiliser la recherche d’indexation de contenu dans la Items collection, utilisez la Restrict(String) méthode . FindRow retourne 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 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 :Filter

BodyCategoriesChildrenClassCompaniesCompanyLastFirstNoSpaceCompanyLastFirstSpaceOnlyContactNamesContactsConversationIndexDLNameEmail1EntryIDEmail2EntryIDEmail3EntryIDEntryIDHTMLBodyIsOnlineMeetingLastFirstAndSuffixLastFirstNoSpaceAutoResolvedWinnerBodyFormatInternetCodePagePermissionLastFirstNoSpaceCompanyLastFirstSpaceOnlyLastFirstSpaceOnlyCompanyLastFirstNoSpaceAndSuffixMemberCountNetMeetingAliasNetMeetingAutoStartNetMeetingOrganizerAliasNetMeetingServerNetMeetingTypeRecurrenceStateReplyRecipientsReceivedByEntryIDRecevedOnBehalfOfEntryIDResponseStateSavedSentSubmittedVotingOptionsDownloadStateIsConflictMeetingWorkspaceURL

Création de filtre pour les méthodes Rechercher et Restreindre

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

String (pour les champs de texte)

Lorsqu'il s'agit d'effectuer une recherche dans les champs Text, vous pouvez utiliser une apostrophe (') ou des guillemets doubles ("") pour délimiter les valeurs faisant partie du filtre. Par exemple, toutes les lignes suivantes fonctionnent correctement lorsque le champ est de type String (chaîne en C#) :

sFilter = « [CompanyName] = 'Microsoft' »

sFilter = « [CompanyName] = « "Microsoft"" »

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

Lors de la spécification d’un filtre dans une requête Jet ou DASL, si vous utilisez une paire d’apostrophes simples pour délimiter une chaîne qui fait partie du filtre et que la chaîne contient une autre apostrophe, vous devez ajouter une apostrophe simple en tant que caractère d’échappement devant l’apostrophe simple. 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 la propriété Subject comme étant égale au mot ne peut pas, la chaîne de filtre entière est délimitée par une paire de guillemets doubles et la chaîne incorporée ne peut pas être délimitée par une paire de guillemets simples. Cette chaîne de filtre contient trois caractères d’échappement : 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 ne peut pas. 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 fonction chr(34) pour représenter le guillemet double (dont la valeur de caractère ASCII est 34) utilisé comme caractère d’échappement. En utilisant chr(34) à la place d’un caractère d’échappement de type guillemet double, vous pouvez exprimer le dernier exemple comme suit :

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

& Chr(34) & " = " & « 'can’t' »

Il est également nécessaire d’utiliser des caractères d’échappement pour les guillemets simples et doubles figurant dans les requêtes DASL à l’aide des opérateurs ci_startswith ou ci_phrasematch. Par exemple, la requête suivante exécute 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 des éléments appropriés, où le mot stuff est entouré de guillemets doubles. Dans ce cas, vous devez ajouter des caractères d'échappement pour les guillemets doubles 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, voir Référencement des propriétés par Espace de noms.

Date

Bien que les dates et les heures soient généralement stockées au format Date, les méthodes Find et Restrict exigent que la date et l’heure soient converties en représentation sous forme de chaîne. Pour vérifier que la date est mise en forme comme prévu dans Microsoft Outlook, utilisez la fonction Format. L'exemple de code suivant montre comment créer un filtre pour rechercher tous les contacts modifiés après le 15 janvier 1999 à 15:30.

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

Opérateurs booléens

Les opérateurs Boolean, 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, utilisez ce filtre :

sFilter = « [Journal] = True »

Remarque : Si vous utilisez des guillemets comme séparateurs avec des champs booléens, une chaîne vide recherche 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 champ Catégories est de mots clés de type, qui 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 nombre faible de valeurs. Vous pouvez ensuite utiliser les méthodes Find et Restrict avec l’opérateur logique OR pour récupérer tous les contacts professionnels. Par exemple (dans pseudocode) : « Entreprise » ou « Entreprise, personnel » ou « Personnel, entreprise. » Les chaînes de catégorie ne sont pas sensibles à la casse.

Entier

Vous pouvez rechercher des champs entiers 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 comme partie du filtre

Comme l’illustre l’exemple de méthode Restrict, vous pouvez utiliser des valeurs de variables dans le cadre du filtre. L’exemple de code Microsoft Visual Basic suivant illustre la syntaxe qui utilise des variables dans le cadre du filtre.

sFullName = « Dan Wilson »

Cette approche utilise Chr(34) pour délimiter la valeur : sFilter = « [FullName] = " & Chr(34) & sFullName & Chr(34)

Cette approche utilise des guillemets doubles pour délimiter la valeur : sFilter = « [FullName] = « " » & sFullName & « "" »

Utilisation d’opérateurs logiques dans le cadre du filtre

Les opérateurs logiques qui sont autorisés sont AND, OR, et NOT. Les variantes suivantes de la clause pour la méthode Restrict vous permettent de spécifier plusieurs critères.

OR : le code suivant renvoie tous les contacts dont la catégorie est 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 extrait tous les contacts personnels qui ne travaillent pas à Microsoft.

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

Notes supplémentaires

Si vous essayez d’utiliser les méthodes Find ou Restrict avec des champs définis par l’utilisateur, les champs doivent être définis dans le dossier, sinon une erreur se produit. 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. Vous pouvez utiliser la méthode Restrict pour rechercher des éléments commençant par un caractère particulier. Par exemple, pour rechercher tous les contacts dont le nom de famille commence par la lettre M, utilisez le filtre suivant :

sFilter = « [LastName] > 'LZZZ' and [LastName] < 'N' »

S’applique à