Again, the import dialog won't import custom fields. So if you get your
table from Access as a recordset you first have to get each matching
existing contact for each table row before you can get to the custom field.
If the contacts to be imported don't exist you can use the Access table to
create the contacts one by one.
The code I showed gets one field from a recordset and sets that field in a
previously selected contact. The code would be in a VBA macro.
Let's say the contacts exist already and they are in the default Contacts
folder, and that you already have your Access recordset with fields for your
custom property and also for name or other identifying characteristics. This
would get your entire collection of Contacts:
Dim oFolder As Outlook.MAPIFolder
Dim colItems As Outlook.Items
Dim oNS As Outlook.NameSpace
Set oNS = Application.GetNameSpace("MAPI")
Set oFolder = oNS.GetDefaultFolder(olFolderContacts)
Set colItems = oFolder.Items
Then you'd need code to look at each contact in the Items and try to match
it with a row in your recordset. For iterating the Outlook Items:
Dim oContact As Outlook.ContactItem
For Each oContact In colItems
You'd then search the recordset for a matching contact row and once you have
that you'd be able to use the code I originally showed.
If you have any distribution lists in your folder that would fire an error
when the DL was hit and you attempted to assign it to a ContactItem object
(oContact). So you'd also need code to allow for that. A simple On Error
Resume Next and a test for oContact Is Nothing would work as a prerequisite
to getting into the loop code.
You might want to look at the database code samples at
www.outlookcode.com
for various samples of doing this sort of thing with Outlook code.