With Access and the Outlook ODBC driver, I can construct queries like this one:
With ugly UNION queries, I can even find all the entries where a phone number is duplicated, even if say it appears as "work phone" in one entry and "mobile phone" in another.
SELECT Contacts.[Email Address], Contacts.First, Contacts.Last, Contacts.Title, Contacts.Company
WHERE (((Contacts.[Email Address]) In (SELECT [Email Address] FROM [Contacts] As Tmp GROUP BY [Email Address] HAVING Count(*)>1 )))
ORDER BY Contacts.[Email Address];
What I haven't been able to figure out how to do is to construct a good user interface and update process whereby I can take a look at each group of conflicts and decide:
- that it's okay [for example, a triad or quad who share a home phone number], in which case I would take no action
- it's not okay, and I know which one is the correct number [by memory or by context...for example a 703 number shared by three contacts where two of them are not in Virginia]
- it's not okay, and I have no way of knowing, in which case I might flag it for a follow-up call ["Pardon me...I know you are someone I know, but I have no idea who you are!" Yeah, that'll be fun].