VBA Looking Up User in Global Address List

So I have the VBA code below, found via Google. References are as shown in the attached bitmap, all in Office 2007.

What I'd like to do is modify the line which dispalys the Global Address List to default to select a specific individual (e.g. I want to use this to look up people in the GAL)
Set orecip = oCDOSession.AddressBook(Nothing, txtCaption, True, True, 1, buttontext, "", "", 0)

when the thing opens. However, I can't find ANY documentation on the Namespace.AddressBook method. Any ideas what each of it's arguements represent, or where there is some documentation on this? (I understand args 2 and 6...)


Sub Main()
    Call Globaladdress("Access-Executive", "Address Book: Global Address List", "Add")
End Sub

Sub Globaladdress(fieldname, caption, buttontext)
    Dim oOutlookApplication As Outlook.Application
    On Error Resume Next
    
    If oOutlookApplication Is Nothing Then
        Err.Clear
        Set oOutlookApplication = CreateObject("Outlook.Application")
    Else
        Set oOutlookApplication = GetObject(, "Outlook.Application")
    End If
    
    Set oCDOSession = CreateObject("Mapi.Session")
    oCDOSession.Logon "", "", False, False, 0
    txtCaption = caption 'The title of the window, e.g. "Address Book: Global Address List"
    
    If Not Err Then
        Set orecip = oCDOSession.AddressBook(Nothing, txtCaption, True, True, 1, buttontext, "", "", 0)
    End If
    
    If Not Err Then
        Item.UserProperties.Find(fieldname).Value = orecip(1).Name
    End If
    
    oCDOSession.Logoff
    oCDOSession = Nothing
    oOutlookApplication = Nothing
End Sub

Open in new window

References.bmp
LVL 1
travisjbennettAsked:
Who is Participating?
 
David LeeCommented:
Sorry to be slow.  Here's how.  Be sure to include a project reference to Outlook.
Sub ShowOutlookAddressBook()
    Dim olkApp As Outlook.Application, olkSes As Outlook.Namespace, olkSND As Outlook.SelectNamesDialog
    Set olkApp = GetObject(, "Outlook.Application")
    Set olkSes = olkApp.Session
    Set olkSND = olkSes.GetSelectNamesDialog
    With olkSND
        .AllowMultipleSelection = True
        .Display
        'The selections the user makes will be in the olkSND.Recipients collection'
    End With
    Set olkSND = Nothing
    Set olkSes = Nothing
    Set olkApp = Nothing
End Sub

Open in new window

0
 
David LeeCommented:
Hi, travisjbennett.

Forgetting about this code for a minute, what is it that you want to accomplish?  There may be a simpler way to do this.
0
 
travisjbennettAuthor Commented:
I already know how to use LDAP via VBA -- I'm just trying to learn the method to give end users a nice pretty recognizable dialog with all the user info in it -- a way to automate looking up someone in the GAL.
All I want to do is pre-select someone (their name highlighted for easy right clicking to properties) in the GAL.
0
Simplify Active Directory Administration

Administration of Active Directory does not have to be hard.  Too often what should be a simple task is made more difficult than it needs to be.The solution?  Hyena from SystemTools Software.  With ease-of-use as well as powerful importing and bulk updating capabilities.

 
David LeeCommented:
Sorry, but I'm not clear on what you have in mind.  Outlook already has a means of searching the GAL and right-clicking to view the properties of an entry.  Are you proposing another means of doing the same thing?  If so, what's the advantage?  If not, then I'm not understanding your goal.
0
 
travisjbennettAuthor Commented:
Outlook has the abilities built in, sure...

... But Access does not.

A VBA solution would make it extensible across all of Microsoft Office.

I want to open a user properties form from Access, and add/remove people to lists within Access.
0
 
David LeeCommented:
You can call Outlook's address book function from any Microsoft Office app using VBA.
0
 
travisjbennettAuthor Commented:
How?
0
 
Glen KnightCommented:
This question has been classified as abandoned and is being closed as part of the Cleanup Program. See my comment at the end of the question for more details.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.