Determine the user mailbox for a specific folder

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.
 
K

Ken Slovak - [MVP - Outlook]

Just keep getting Parent until you've traversed up the hierarchy to Personal
Folders or Mailbox or whatever at the top of the stack.
 
D

dch3

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
 
K

Ken Slovak - [MVP - Outlook]

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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top