Why does Access report it can't receive a command to its program?
Solution 1:
Had this issue but only with specific office products (i.e. Excel and Word would work but Access would fail with the message).
Here is how I fixed the issue in Windows 7 - 64 Bit (Possibly would work for Vista as well).
NOTE: This solution involves editing your system registry. Please be careful as incorrectly editing the registry could corrupt your operating system!
Using Registry Editor provided with Windows 7 (Regedit)
- Check the extension key in the registry for the current association
-
HKEY_CLASSES_ROOT\.mdb
(I was dealing with Office 2007 but just locate the file extension entry you are interested in). - Check the
(Default)
value entry, then find the key inHKEY_CLASSES_ROOT
it refers to (in my case this is Access.MDBFile). - Locate the sub key
shell
and delete it (see warning above) - Go back to and locate a file you wish to open, you will now be asked to choose a program to open it with. At this point locate the office program you wish to use to open the file and your done.
Checking my settings after doing this, noticed that the Access.MDBFile
key in the registry had changed, it now had a CLSID
key that pointed to the new home of the file association.
- The sub key
CLSID
(in my caseHKEY_CLASSES_ROOT\Access.MDBFile\CLSID
,(Default)
value was{73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}
). - Used find to search for the
CLSID
(excluding curly brackets), remember to check underLook at
->Keys
before performing the search (in my case found keyHKEY_CLASSES_ROOT\Wow6432Node\CLSID\{73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}
but this could differ, my example is for 64 bit system handling a 32 bit version of Office 2007). - This reference is to the "Microsoft Office Access Application" that uses an In-process server to launch the application, using this method fixed my Access file associations.
Solution 2:
Basically, this error appears if a file type is set up to use DDE (an old Windows-3.x-style communication protocol between applications running on the same computer) to open a file.
You will find it in file types in folder options of explorer (maybe somewhere else on Windows 7, but there will be some place where an administrator can set up which files to open with which programs).
When that "Use DDE" option is checked, Windows will first check whether the program is already running, and then (if it does) send it a DDE message (consisting of 3 texts, "Application", "Topic" and "Message"). This way it can avoid opening the program again even if it is already running. When the program is not running, it is just started normally. In case the DDE connection fails, the dialog you mention will appear and it will just start the program again normally.
So, the easiest fix is just to disable "Use DDE" for the file extension of your database (I guess .mdb). The only drawback of this: When you open a database and Access is already running, Windows will open a second instance of Access, which will in turn notice the first one and send the DDE message and exit after that. I. e. you are unneccessarily starting Access so that it can close again at once. But nowadays with fast CPUs and hard disks, I guess this is acceptable :-)
The more complex fix would be to check whether something is wrong in these settings (like wrong topic or wrong application) and fix that. Doing that would require you having access to another (maybe virtual) machine where opening files work so that you can compare the DDE configuration.
EDIT: According to this website, that tab was dropped in Vista. You could always do it manually in the registry: Look up HKEY_CLASSES_ROOT\.mdb
for its default value (say it is mdbfile
) and then look at that default value (HKEY_CLASSES_ROOT\mdbfile\shell\open\ddeexec
).