F
or a long time — really, since Office 97, when Outlook was introduced
— I have wanted to write VBA code to synchronize Access contacts
with Outlook contacts. My Access contacts are stored in a set of linked
tables, with companies linked to contacts and contacts linked to addresses,
phone numbers, and IDs of various sorts, which allows maximum flexibility
for entering data and at the same time avoids having to enter the same data
in multiple records. Outlook, on the other hand, has a very attractive and
convenient interface for entering contact data, but unfortunately stores all
contact data in a flat-file MAPI database, with a limited number of fields for
addresses, phone numbers, and IDs.
Though it isn’t difficult to write code to simply import data from Outlook to
an Access table, or export data from an Access table to Outlook contacts, if
the Access contacts are a set of linked tables, as they should be, the task is
much more difficult — but not impossible. Live linking is out of the ques-
tion, because of the difference in structure between a folder of Outlook con-
tacts and a set of linked Access tables, but the contacts can be compared, and
data copied from an Outlook contact to an Access contact (or vice versa),
using an intermediary flat-file table filled with data from the linked Access
tables. This chapter describes the technique I use to first denormalize Access
data for comparison with Outlook contacts and then renormalize the
updated data in order to write it back to the linked Access tables.
See the “Working with Outlook Contacts” section in
Chapter 8 for information on exchanging data between a
single Access contacts table and Outlook contacts.
CROSS-REFCROSS-REF
IN THIS CHAPTER
Updating Outlook contacts from
Access, and vice versa
Copying attachments from
Outlook to Access, and
vice versa
Synchronizing Access and
Outlook Contacts