Filtrage d'un champ personnalisé

Vous pouvez spécifier des propriétés personnalisées dans les filtres en utilisant la syntaxe Microsoft Jet ou la syntaxe DASL (DAV Searching and Locating). Les propriétés personnalisées doivent être définies dans le dossier où vous appliquez le filtre. Si les propriétés personnalisées sont définies uniquement dans l'élément, la recherche échoue.

Requêtes Jet

Le nom d'une propriété personnalisée peut contenir des espaces. Dans une requête Jet, comme dans toutes les références de nom de propriété, mettez simplement le nom de la propriété personnalisée entre crochets. Par exemple, la requête Jet suivante extrait tous les contacts dont la propriété personnalisée nommée « Preferred Gift » a pour valeur exacte « Diamonds ». Pour que la requête réussisse, la propriété personnalisée nommée « Preferred Gift » a été définie dans le dossier qui contient les éléments de contact personnalisés :

criteria = "[Preferred Gift] = 'Diamonds'"

Requêtes DASL

Dans une requête DASL, si le nom d'une propriété personnalisée contient des espaces, vous devez appliquer le codage URL (Uniform Resource Locator) à chaque caractère d'espace et le remplacer par « %20 ». En général, l’encodage d’URL s’applique de la même façon aux caractères d’une requête DASL que dans une URL.

Lorsque vous construisez une requête DASL pour une propriété personnalisée, vous devez utiliser le GUID de l'espace de noms correspondant aux propriétés personnalisées Outlook sous la forme suivante :

https://schemas.microsoft.com/mapi/string/{GUID}/PropertyName

{GUID} correspond au GUID suivant :

{00020329-0000-0000-C000-000000000046}

Filtrage de propriétés personnalisées référencées par l’espace de noms de chaînes MAPI

Si la propriété personnalisée pour laquelle vous filtrez n’existe pas dans la collection UserDefinedProperties du dossier et si vous référencez la propriété personnalisée par l’espace de noms de chaîne MAPI, vous devez ajouter explicitement un spécificateur de type à la représentation de l’espace de noms de la propriété personnalisée. Notez que vous devez spécifier le type uniquement lors de l’application d’un filtre DASL pour rechercher et filtrer des points d’entrée dans la collection Items et l’objet Table , et à la méthode Application.AdvancedSearch .

Note Le spécificateur de type hexagonal doit être de la forme 0000HHHH avec seulement 8 chiffres au lieu de 9. Pour plus d’informations sur les spécificateurs de type hexagonal (HHHH) pour différents types MAPI, consultez Types de propriétés.

Par exemple, si vous souhaitez utiliser Items.Restrict pour rechercher la propriété de chaîne Unicode personnalisée nommée « MyProperty » et que cette propriété n’existe pas dans la collection UserDefinedProperties du dossier, vous devez ajouter le spécificateur de type de chaîne Unicode, 0000001f, à la représentation de la propriété dans l’espace de noms de chaîne MAPI :

criteria = "@SQL=" & Chr$(34) & "https://schemas.microsoft.com/mapi/string/" _ 
& "{00020329-0000-0000-C000-000000000046}/MyProperty"_ 
& "/0000001f" & Chr(34) & " = '12-74440'" 

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.