Solution:
The file had a reference to System Monitor C:\windows\system32\sysmon.ocx
When viewing the references in WinXP the reference is fine, if you view the
references when the file is opened on a Vista box you see "MISSING: System
Monitor" and the path to sysmon.ocx.
Notably, I was unable to remove the reference when the database was opened
on a Vista box and indeed C:\windows\system32\sysmon.ocx is present on the
Vista box. So I removed the reference while running the database from an XP
box. All ‘seems’ to be working fine now. I can only guess that sysmon.ocx
has been sufficiently modified in Vista to the point that XP can not
reference it.
The problem is, I’ve been modifying this database for years; playing with
things, tinkering here and there. Obviously, somewhere along the line I
either added this reference manually, or some control I tried to add, added
it for me.
So, I guess we delete the reference and cross our fingers!
But can someone answer this for me, if the .mdb file holds a reference to a
specific .dll file in a static location like C:\windows\system32\sysmon.ocx,
and the file is opened on a Vista box how would that change what happens when
the file is re-opened later on an XP box? It’s not like the .mdb file has a
copy of sysmon.ocx, it’s only a reference to it. So if you open the file on
Vista, it would point to the “vista version†but if you open it on XP it
would point to the “XP version†So I still don’t get why this happened.
Thanks to everyone who contributed to this post!