Link Business Contacts to an Account

You can assign one or more Business Contact objects to an Account object, and set a Business Contact as the primary Business Contact for the Account. To add a Business Contact to an Account, set the Parent Entity EntryID property of the Business Contact to point to the EntryID property of the Account.

The following C# and Visual Basic for Applications (VBA) code examples show how to link a primary Business Contact to an Account object.

C#

  private void AddBusinessContactToAccount()
        {

            Outlook.ApplicationClass _app = new Outlook.ApplicationClass();
            Outlook.Application olApp = (Outlook.Application)_app;
            Outlook.NameSpace olNameSpace = _app.GetNamespace("MAPI");
            Outlook.Folders folders = olNameSpace.Session.Folders;
            Outlook.Folder bcmRootFolder = (Outlook.Folder)folders["Business Contact Manager"];
            Outlook.UserProperty userProp;

            Outlook.Folder accounts = (Outlook.Folder)bcmRootFolder.Folders["Accounts"];
            Outlook.ContactItem newAccount = (Outlook.ContactItem)accounts.Items.Add("IPM.Contact.BCM.Account");
            newAccount.FullName = "Sara Hettich ";
            newAccount.FileAs = "Hettich";
            newAccount.Save();

            string accEntryID = newAccount.EntryID;

            Outlook.Folder businessContacts = (Outlook.Folder)bcmRootFolder.Folders["Business Contacts"];
            Outlook.ContactItem newContact1 = (Outlook.ContactItem)businessContacts.Items.Add("IPM.Contact.BCM.Contact");
            newContact1.FullName = "Hao Chen";
            newContact1.FileAs = "Chen";

            if (newContact1.UserProperties["Parent Entity EntryID"] == null)
            {
                userProp = newContact1.UserProperties.Add("Parent Entity EntryID", Microsoft.Office.Interop.Outlook.OlUserPropertyType.olText, false, false);
                userProp.Value = accEntryID;
            }
            newContact1.Account = newAccount.FileAs;
            newContact1.Save();

            string contactEntryID = newContact1.EntryID;

            if (newAccount.UserProperties["PrimaryContactEntryID"] == null)
            {
                userProp = newAccount.UserProperties.Add("PrimaryContactEntryID", Microsoft.Office.Interop.Outlook.OlUserPropertyType.olText, false, false);
                userProp.Value = contactEntryID;
            }

            newAccount.Save();
						}


VBA

  Sub AddContactsToAccount()

Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim olFolders As Outlook.Folders
Dim bcmRootFolder As Outlook.Folder
Dim bcmAccountsFldr As Outlook.Folder
Dim bcmContactsFldr As Outlook.Folder
Dim newAcct As Outlook.ContactItem
Dim newContact1 As Outlook.ContactItem
Dim newContact2 As Outlook.ContactItem
Dim newContact3 As Outlook.ContactItem
Dim userProp As Outlook.UserProperty

Set olApp = CreateObject("Outlook.Application")
Set objNS = olApp.GetNamespace("MAPI")
Set olFolders = objNS.Session.Folders
Set bcmRootFolder = olFolders("Business Contact Manager")
Set bcmAccountsFldr = bcmRootFolder.Folders("Accounts")
Set newAcct = bcmAccountsFldr.Items.Add("IPM.Contact.BCM.Account")

newAcct.FullName = "World Wide Importers"
newAcct.FileAs = "World Wide Importers"
newAcct.Save

Set bcmContactsFldr = bcmRootFolder.Folders("Business Contacts")

Set newContact1 = bcmContactsFldr.Items.Add("IPM.Contact.BCM.Contact")
newContact1.FullName = "John Smith"
newContact1.FileAs = "John Smith"

If (newContact1.UserProperties("Parent Entity EntryID") Is Nothing) Then
    Set userProp = newContact1.UserProperties.Add("Parent Entity EntryID", olText, False, False)
    userProp.Value = newAcct.EntryID
End If

newContact1.Save

Set newContact2 = bcmContactsFldr.Items.Add("IPM.Contact.BCM.Contact")
newContact2.FullName = "Rajesh Rotti "
newContact2.FileAs = "Rajesh Rotti "

If (newContact2.UserProperties("Parent Entity EntryID") Is Nothing) Then
    Set userProp = newContact2.UserProperties.Add("Parent Entity EntryID", olText, False, False)
    userProp.Value = newAcct.EntryID
End If

newContact2.Save

Set newContact3 = bcmContactsFldr.Items.Add("IPM.Contact.BCM.Contact")
newContact3.FullName = "Isabel Martins"
newContact3.FileAs = "Isabel Martins"

If (newContact3.UserProperties("Parent Entity EntryID") Is Nothing) Then
    Set userProp = newContact3.UserProperties.Add("Parent Entity EntryID", olText, False, False)
    userProp.Value = newAcct.EntryID
End If

newContact3.Save

If (newAcct.UserProperties("PrimaryContactEntryID") Is Nothing) Then
    Set userProp = newAcct.UserProperties.Add("PrimaryContactEntryID", olText, False, False)
    userProp.Value = newContact3.EntryID
End If

newAcct.Save

Set newAcct = Nothing
Set newContact3 = Nothing
Set newContact2 = Nothing
Set newContact1 = Nothing
Set bcmContactsFldr = Nothing
Set bcmAccountsFldr = Nothing
Set bcmRootFolder = Nothing
Set olFolders = Nothing
Set objNS = Nothing
Set olApp = Nothing

End Sub 

See Also

Unlink Business Contacts From an Account | 2007 Office System: Updated Developer Content