Propiedades no compatibles en un objeto Table o un filtro Table
En este tema se muestran las propiedades que no se pueden agregar a un objeto Table ni utilizar en un filtro Table. Estas propiedades no se pueden agregar mediante Columns.Add ni se pueden especificar en un filtro utilizado por los métodos siguientes:
Search.GetTable (Tenga en cuenta que el filtro se deriva del objeto Search devuelto por Application.AdvancedSearch)
Propiedades | En el objeto Table | En el filtro Table | Comentarios |
---|---|---|---|
Propiedades binarias | Compatible | No se admite | Si se agrega una propiedad binaria a un objeto Table que hace referencia a su espacio de nombres, el valor de la propiedad en el objeto Table está en formato binario. Use Row.BinaryToString para convertir el valor en una cadena. |
Propiedades del cuerpo, como Body, HTMLBody, https://schemas.microsoft.com/mapi/proptag/0x10130102 (para PidTagHtml) y https://schemas.microsoft.com/mapi/proptag/0x10090102 (para PidTagRtfCompressed) |
La propiedad Body es compatible siempre que sólo se almacenen los primeros 255 bytes del valor en el objeto Table. Otras propiedades que representan el contenido de texto en HTML o RTF no son compatibles. Dado que solo los primeros 255 bytes de Body se almacenan en una tabla, si desea obtener todo el contenido del cuerpo de un elemento en texto o HTML, use entryID del elemento en GetItemFromID para obtener el objeto item. Después, recupere el valor completo de Body a través del objeto de elemento. |
Sólo la propiedad Body representada en texto es compatible con un archivo. Esto significa que se debe hacer referencia a la propiedad en un filtro DASL como urn:schemas:httpmail:textdescription y no se puede filtrar por ninguna etiqueta HTML del cuerpo. Para mejorar el rendimiento, utilice palabras clave de indizador de contexto en el filtro para que coincidan con cadenas en el cuerpo. | |
Propiedades calculadas, como AutoResolvedWinner y BodyFormat. A continuación encontrará una lista completa de propiedades calculadas. | No compatibles | No compatible | Para obtener el valor de una propiedad calculada de un elemento de un objeto Table, utilice EntryID del elemento en GetItemFromID para obtener el objeto Item. A continuación, recupere el valor de propiedad a través del objeto item. |
Propiedades con varios valores, como Categories, Children, Companies y VotingOptions | Compatible | Aunque tanto los filtros Jet como los DASL admiten propiedades de varios valores, utilice la indización de contenidos en los filtros DASL para aumentar la eficacia del filtrado. Para obtener más información, vea Filtrar elementos utilizando una comparación con una propiedad Keywords. | El formato de los valores de una propiedad de varios valores de un objeto Table depende de si la propiedad se agregó con su nombre integrado explícito o con un nombre que haga referencia a su espacio de nombres. Si la propiedad se agrega con su nombre integrado explícito, el valor del objeto Table es una cadena delimitada por comas. De lo contrario, será una matriz Variant. Para obtener más información, vea Cómo: Obtener acceso a los valores de una propiedad de varios valores en una tabla. |
Propiedades que devuelven un objeto, como Attachments, Parent, Recipients, RecurrencePattern y UserProperties. | No compatibles si se hace referencia a la propiedad por su nombre integrado explícito; compatibles si se hace referencia a la propiedad por su espacio de nombres. | No compatibles si se expresa la propiedad en una consulta Jet; compatibles si se expresa en una consulta DASL. |
Propiedades calculadas no compatibles
Si intenta agregar una de las propiedades calculadas que se enumeran a continuación mediante Columns.Add, haciendo referencia a la propiedad por el nombre de la propiedad explícita o por espacio de nombres, obtendrá el error , IDS_ERR_BLOCKED_PROPERTY. Para determinar el valor de estas propiedades, obtenga el objeto item con su identificador de entrada y, a continuación, use el objeto item para determinar el valor de propiedad (como en object.property
):
AutoResolvedWinner
BodyFormat
Class
ContactNames
Companies
DownloadState
FlagIcon
Htmlbody
InternetCodePage
IsConflict
IsMarkedAsTask
MeetingWorkspaceURL
MemberCount
Saved
Sent
Submitted
TaskSubject
Unread
Si intenta usar una de las propiedades calculadas que se enumeran a continuación en un filtro Jet (que hace referencia a la propiedad por su nombre de propiedad explícito) para Table.Restrict, obtendrá el error IDS_ERR_ES_INVALIDRESTRICTION:
AutoResolvedWinner
Body
BodyFormat
Class
ContactNames
Companies
ContactNames
ConversationIndex
DownloadState
EntryID
Htmlbody
InternetCodePage
IsConflict
IsMarkedAsTask
MeetingWorkspaceURL
MemberCount
NetMeetingServer
ReplyRecipients
Saved
Sent
Submitted
TaskSubject
Nota Para una propiedad calculada como TaskSubject o IsMarkedAsTask, no se puede agregar a una tabla mediante Columns.Add o filtrarla mediante Table.Restrict, si hace referencia a la propiedad con el nombre de propiedad explícito. En cambio, se puede agregar o filtrar la propiedad si se hace referencia a ella por su espacio de nombres, como se muestra en el ejemplo siguiente de código de Visual Basic para Aplicaciones:
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
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de