Compartilhar via


Trabalhar com EntryIDs e StoreIDs

Este tópico descreve o uso da ID de Entrada de um item e ID da Loja de um repositório para acessar um item específico em um NameSpace.

Se você estiver criando uma solução mais complexa usando o Microsoft Outlook que envolve vincular ou fazer referência cruzada a itens em pastas, uma opção é usar as IDs (identificadores baseadas em MAPI) de cada item. Se você conhece as IDs de um item e a pasta em que ele está armazenado, você pode fazer referência direta ao item usando o método NameSpace.GetItemFromID .

Cada item do Outlook tem um campo chamado EntryID, que é um campo de identificação exclusiva gerado pelo sistema de repositório de mensagens para uso com as pastas MAPI que armazenam o item. É importante observar que sempre que um item é criado em uma pasta, ele recebe uma nova EntryID. Isso significa que o campo EntryID mudará se um item for movido para outra pasta ou for exportado e depois importado (mesmo que seja para a mesma pasta).

Cada pasta tem um campo de ID chamado Folder.StoreID, cujo valor é o mesmo para todas as pastas em um armazenamento de mensagens específico. Cada pasta também tem um campo Entry ID exclusivo. Ao usar o método GetItemFromID para recuperar um item com base em sua identificação, especifique o EntryID do item e o StoreID da pasta. Se você não especificar o StoreID, GetItemFromID pesquisa o repositório de mensagens padrão. O exemplo a seguir do Microsoft Visual Basic for Applications (VBA) ilustra o uso do método GetItemFromID. O código recupera o StoreID da pasta Contatos padrão, preenche uma matriz ( MyEntryID) com as IDs de entrada de todos os contatos na pasta e, finalmente, recupera um item de contato específico:

Sub OutlookEntryID() 
 ' If there are more than 500 contacts, change the following line: 
 Dim MyEntryID(500) As String 
 Dim StoreID As String 
 Dim EntryID As String 
 
 Set olns = Application.GetNamespace("MAPI") 
 Set objFolder = olns.GetDefaultFolder(olFolderContacts) 
 ' Get the StoreID, which is a property of the folder. 
 StoreID = objFolder.StoreID 
 ' Set objAllContacts equal to the collection of all contacts. 
 Set AllContacts = objFolder.Items 
 I = 0 
 ' Loop to get all of the EntryIDs for the contacts. 
 For Each Item In AllContacts 
 I = I + 1 
 MyEntryID(I) = Item.EntryID 
 Next 
 ' Randomly choose the 2nd contact to retrieve. 
 Set Item = olns.GetItemFromID(MyEntryID(2), StoreID) 
 Item.Display 
End Sub

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.