The method where you choose the contacts list from within Word relies on
quite a complex method of getting the info. from Outlook and there seem to
be plenty of things that can prevent it from working. That's one of the
reasons for initiating from Outlook.
Unfortunately I don't have the same combination of Word and Outlook that you
have so cannot test this properly, but connecting to Outlook 2003 contacts
works OK here even when the lists are nested.
In Office 2007, this method uses the ACE (Access) OLE DB provider and the
ACE Outlook/Exchange IISAM to get data from Outlook. I think you must have
that stuff installed or you would not be able to see the list of Contacts
folders when you click the "Select from Outlook Contacts" option in Word.
The method uses at least one and possibly two temp files to do its work, so
it may be worth checking that you have full access or at least read/write
permission for the relevant folders, which are likely to be
c:\Program Files\Common Files\SYSTEM\MSMAPI\1033
or
c:\Program Files (x86)\Common Files\SYSTEM\MSMAPI\1033
(the second version is on 64-bit Vista). Or there could be a different
number at the end if you're not using English language Windows.
The other place is
AppData\Local\Temp\OfficeMMergeTempDir
which would be somewhere under your username's files and settings - e.g.
here oon Vista it's
C:\Users\<my user name>\AppData\Local\Temp\OfficeMMergeTempDir
If you are also using Exchange server, the location of your folders may also
have a bearing on what is happening here, and there may also be problems
where the names of folders in Outlook and folders in the "Address book" can
interfere with each other.
There may be another way to get this data out of Outlook as long as you have
Access as well. Again, I can't currently test this in Office 2007. In
essence, you
1. create a linked table in Access for each Contacts folder you need to
use, and select Files of type "Outlook()" in the Link dialog. Choose the
folder you want (there will probably be several "red herrings" in there).
2. However, Word & OLE DB cannot "see" that table when you try to use it as
a data source, so you also need to create an Access query that retrieves all
the records from that table
3. use that query as your data source
It may also be possible to solve the "getting data from all three folders"
problem by...
4. creating a union query that gets all the data from multiple linked
tables. For example, if your contacts tables are called
tcontact1, tcontact2, tcontact3, then you can create a query with the
followig SQL:
SELECT * FROM tcontact1
UNION
SELECT * FROM tcontact2
UNION
SELECT * FROM tcontact3
This particular query would probably remove duplicates. If you need to
retain duplicates you could use soemthing like
SELECT 1,* FROM tcontact1
UNION
SELECT 2,* FROM tcontact2
UNION
SELECT 3,* FROM tcontact3
5. because Word+OLE DB cannot "see" UNION queries either, you then have to
create a further query that simply returns all the data from that UNION
query. Word+OLE DB /can/ see that query, so with any luck, you're in
business.
If you do try that, it's possible that you will run into the same problem
that is preventing Word from connecting. However, if you do, it's possible
that Access will provide further info. on what that problem is. Access does
not use quite the same method to make the connection - it uses an ODBC
driver rather than an OLE DB provider - but it should use the same
underlying "Outlook IISAM".
I don't use this approach on a daily basis so even if you manage to make it
work, you may run into further problems down the line. One disadvantage is
of course that you have to keep your Access database tables and queries in
line with the stuff you have in Outlook - it doesn't happen automatically.
One advantage is that you can use the power of Access to return the data you
need, in the sequence you need.