Partager via


Propriétés non prises en charge dans un objet Table ou un filtre de table

Cette rubrique répertorie les propriétés que vous ne pouvez pas ajouter à un tableau ou utiliser dans un filtre Table . Vous ne pouvez pas ajouter ces propriétés via Columns.Add, et vous ne pouvez pas spécifier ces propriétés dans un filtre utilisé par les méthodes suivantes :

Properties Dans un objet Table Dans un filtre Table Commentaires
Propriétés binaires Pris en charge Non pris en charge Si vous ajoutez une propriété binaire à un objet Table faisant référence à son espace de noms, la valeur de la propriété dans l’objet Table est exprimée sous forme binaire. Utilisez Row.BinaryToString pour convertir la valeur en chaîne.
Propriétés de corps, y compris Body, HTMLBody, https://schemas.microsoft.com/mapi/proptag/0x10130102
(pour PidTagHtml) et https://schemas.microsoft.com/mapi/proptag/0x10090102 (pour PidTagRtfCompressed)
La propriété Body est prise en charge à condition que seuls les 255 premiers octets de la valeur soient stockés dans un objet Table. Les autres propriétés représentant le contenu du corps au format HTML ou RTF ne sont pas prises en charge.
Étant donné que seuls les 255 premiers octets de Body sont stockés dans une table, si vous souhaitez obtenir le contenu complet d’un élément en texte ou HTML, utilisez l’ID d’entrée de l’élément dans GetItemFromID pour obtenir l’objet élément. Récupérez ensuite toute la valeur du Body via l’objet d’élément.
Seule la propriété Body représentée dans le texte est prise en charge dans un filtre. Cela signifie que la propriété doit être référencée dans un filtre DASL en tant que urn:schemas:httpmail:textdescription, et que vous ne pouvez pas filtrer sur des balises HTML dans le corps. Pour améliorer les performances, utilisez les mots clés de l’indexeur du contexte dans le filtre de façon à établir des correspondances avec les chaînes du corps.
Propriétés calculées, telles que AutoResolvedWinner et BodyFormat. Voir ci-après la liste complète des propriétés calculées. Pas de prise en charge Non pris en charge Pour obtenir la valeur d’une propriété calculée pour un élément contenu dans un objet Table, utilisez l’identificateur EntryID de l’élément dans GetItemFromID pour obtenir l’objet de l’élément. Récupérez ensuite la valeur de la propriété via l’objet item.
Propriétés à valeurs multiples, telles que Categories, Children, Companies et VotingOptions Pris en charge Même si les filtres Jet et DASL prennent en charge les propriétés à valeurs multiples, utilisez l’indexation de contenu dans les filtres DASL pour un filtrage plus efficace. Pour plus d’informations, voir Filtrage d’éléments à l’aide d’une comparaison contenant une propriété de type keywords. Le format des valeurs d’une propriété à valeurs multiples dans un objet Table varie selon que la propriété a été ajoutée avec son nom intégré explicite ou avec un nom faisant référence à son espace de noms. Si la propriété est ajoutée avec son nom intégré explicite, la valeur dans l’objet Table est une chaîne délimitée par des virgules. Sinon, la valeur est un tableau de variants. Pour plus d’informations, voir Comment : Accéder aux valeurs d’une propriété à valeurs multiples dans un objet Table.
Propriétés renvoyant un objet, telles que Attachments, Parent, Recipients, RecurrencePattern et UserProperties. Pas de prise en charge si la propriété est référencée par son nom intégré explicite ; prise en charge si la propriété est référencée par son espace de noms. Pas de prise en charge si la propriété est exprimée dans une requête Jet ; prise en charge si la propriété est exprimée dans une requête DASL.

Propriétés calculées non prises en charge

Si vous essayez d’ajouter l’une des propriétés calculées répertoriées ci-dessous à l’aide de Columns.Add, en référençant la propriété par le nom de propriété explicite ou par espace de noms, vous obtiendrez l’erreur , IDS_ERR_BLOCKED_PROPERTY. Pour déterminer la valeur de ces propriétés, obtenez l’objet élément à l’aide de son ID d’entrée, puis utilisez l’objet item pour déterminer la valeur de la propriété (comme dans object.property) :

Si vous essayez d’utiliser l’une des propriétés calculées répertoriées ci-dessous dans un filtre Jet (référençant la propriété par son nom de propriété explicite) pour Table.Restrict, vous obtenez l’erreur , IDS_ERR_ES_INVALIDRESTRICTION :

Note Pour une propriété calculée telle que TaskSubject ou IsMarkedAsTask, vous ne pouvez pas l’ajouter à une table à l’aide de Columns.Ajouter ou la filtrer à l’aide de Table.Restrict, si vous référencez la propriété avec le nom de propriété explicite. Toutefois, vous pouvez ajouter ou filtrer sur la propriété si vous la référencez par espace de noms, comme dans l’exemple de code suivant dans Visual Basic pour Applications :

Sub TableForIsMarkedAsTask() 
    Dim oT As Outlook.Table 
    Dim oRow As Outlook.Row 
    Dim filter As String 
    '0x0E2B0003 represents IsMarkedAsTask 
    filter = "@SQL=" & Chr(34) _ 
    & "https://schemas.microsoft.com/mapi/proptag/0x0E2B0003" & Chr(34) & " = 1" 
    'Table only contains rows for items where IsMarkedAsTask is True 
    Set oT = Application.Session.GetDefaultFolder(olFolderInbox).GetTable(filter) 
    oT.Columns.Add ("TaskStartDate") 
    oT.Columns.Add ("TaskDueDate") 
    oT.Columns.Add ("TaskCompletedDate") 
    'Use GUID/ID to represent TaskSubject 
    oT.Columns.Add ( _ 
        "https://schemas.microsoft.com/mapi/id/{00062008-0000-0000-C000-000000000046}/85A4001E") 
    Do Until oT.EndOfTable 
        Set oRow = oT.GetNextRow 
        Debug.Print oRow( _ 
        "https://schemas.microsoft.com/mapi/id/{00062008-0000-0000-C000-000000000046}/85A4001E"), _ 
        oRow("TaskStartDate"), oRow("TaskDueDate"), oRow("TaskCompletedDate") 
    Loop 
End Sub

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.