Determine the user mailbox for a specific folder

  • Thread starter Thread starter dch3
  • Start date Start date
D

dch3

When the .pickfolder method of a namespace object is used to select a folder,
is there a way to determine the mailbox or store in which the folder exists?
For example, if the user has access to multiple mailboxes and selects
'Inbox', I would like to be able to determine whose Inbox was actually
selected.

I'm thinking that the .parent property of the folder won't be an option
since the user could select a subfolder.
 
Just keep getting Parent until you've traversed up the hierarchy to Personal
Folders or Mailbox or whatever at the top of the stack.
 
So I could adapt the function below to get the name then? - Stoping when I
get to 'MAPI' as the parent.

Public Function getFullFolderPath()
'Build the full path to the folder using the .parent property of the
selected folder by moving upward until will get to the topmost level.

Set nms = Outlook.Application.GetNamespace("MAPI")
Set targetFolder = nms.PickFolder

strPath = targetFolder

While targetFolder.Parent <> "Outlook"
strPath = targetFolder.Parent & "\" & strPath
Set targetFolder = targetFolder.Parent
Wend

Set targetFolder = Nothing
Set nms = Nothing

getFullFolderPath = strPath

End Function
 
I'd do it more like this:

Do While (Not (targetFolder Is Nothing))
strPath = targetFolder.Parent & "\" & strPath
Set targetFolder = targetFolder.Parent
Loop

The final iteration will be in error, so you might want to clear the Err
object if you intend to do any If testing or use other code that might be
affected by the error state.
 
Back
Top