VB.Net creating Contact in Outlook

AlexPonnath
AlexPonnath used Ask the Experts™
on
I have a need to be able to create a Contact in a Users Outlook Address book. Here is some more info, some users have more then one  Email account which means multiple address books. So here is my question, how do I save to the default address book ? Is there a way to get a list of address books for a user and have him chose where to save. Also I have the below sample code but when I run it it does not throw an error nor do I find the contact in any of my address books

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        ' Create an Outlook application.
        Dim outApplication As Outlook.Application = New Outlook.Application()

        ' Get the namespace and the logon.
        Dim outNamSpace As Outlook.NameSpace = outApplication.GetNamespace("MAPI")

        ' Create a new contact item.
        Dim NewContact As Outlook.ContactItem = outApplication.CreateItem(Outlook.OlItemType.olContactItem)

        ' Set some common properties.
        NewContact.FirstName = "Author"
        NewContact.FullName = "Author Code"
        NewContact.Title = "Client"
        NewContact.Birthday = Convert.ToDateTime("5/4/1969")
        NewContact.CompanyName = "AuthorCode"
        NewContact.Department = "Development"
        NewContact.Body = "Sample"
        NewContact.FileAs = "Authorcode"
        NewContact.Email1Address = "abc@hotmail.com"
        NewContact.Email2Address = "abc@live.com"
        NewContact.MailingAddress = "NewDelhi India"
        NewContact.Subject = "Contact crated from vb.net"
        NewContact.JobTitle = "Engineer"

        NewContact.Save()


        outApplication = Nothing
        outNamSpace = Nothing
        NewContact = Nothing

    End Sub

Open in new window

Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
I ran this in Visual Studio 2015 against my Outlook 2013 and it adds the contact to my default contacts folder.

To see what the default contact folder is, add these lines to you code just before you execute the save command.
        Dim default_folder As outlook.Folder
        default_folder = outNamSpace.GetDefaultFolder(outlook.OlDefaultFolders.olFolderContacts)
        MessageBox.Show(default_folder.Name)

Open in new window

Also here's another link that someone has posted some code doing something similar.
Creating Contacts in outlook

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial