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