为什么Access报告它无法接收其程序的命令?


9

我刚刚升级到Windows 7,并且在重新安装MS Office之后,出现了一个有趣的错误。当我单击数据库时,出现弹出消息“将命令发送到程序时出现问题”,但是文件应用程序仍将启动,并且正确的数据库也已打开。

有没有人看过这样的东西?

我将如何调查然后解决此问题?

注意: 我没有使用区域警报。关于此问题的大多数在线搜索返回各种站点和MSKB文章,讨论使用Zone-Alarm的问题

已解决: 感谢Mihi ---将注册表项从ddexec重命名为NOddeexec之后,问题消失了-仍然不确定DDE为何损坏,但现在对我来说已经足够好了


您是单击数据库文件本身还是它的快捷方式?
JohnFx

我单击数据库文件本身。
挪亚

您是否正在使用其他防火墙?
harrymc

仅标准Win-7包含防火墙。另外,该文件位于MyDocuments的子目录中的我的本地驱动器上
Noah

您是否以管理员身份登录?您是否尝试过完全关闭UAC?
harrymc

Answers:


2

出现此问题,但仅适用于特定的办公产品(即Excel和Word可以工作,但Access失败并显示消息)。

这是我在Windows 7-64位中解决此问题的方式(可能也适用于Vista)。

注意:此解决方案涉及编辑系统注册表。请小心,因为错误地编辑注册表可能会损坏您的操作系统!

使用Windows 7(Regedit)随附的注册表编辑器

  • 在注册表中检查当前关联的扩展密钥
  • HKEY_CLASSES_ROOT\.mdb (我正在处理Office 2007,但只需找到您感兴趣的文件扩展名条目)
  • 检查(Default)值条目,然后找到HKEY_CLASSES_ROOT其中引用的键(在我的情况下是Access.MDBFile)
  • 找到子项shell并将其删除(请参阅上面的警告)
  • 返回并找到您要打开的文件,现在将要求您选择一个打开文件的程序。此时,找到您要用来打开文件的Office程序并完成。

完成此操作后检查我的设置,发现Access.MDBFile注册表中的注册表项已更改,现在它具有CLSID指向文件关联的新主目录的注册表项。

  • 子键CLSID (在我的情况下HKEY_CLASSES_ROOT\Access.MDBFile\CLSID(Default)值为{73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}
  • 使用查找来搜索CLSID (不包括大括号),请记住在执行搜索之前检查Look at-> 下(对于我而言,是找到的键,但这可能有所不同,我的示例是用于处理32位版本的Office 2007的64位系统)KeysHKEY_CLASSES_ROOT\Wow6432Node\CLSID\{73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}
  • 此引用涉及使用进程内服务器启动该应用程序的“ Microsoft Office Access应用程序”,使用此方法修复了我的Access文件关联。

6

基本上,如果将文件类型设置为使用DDE(同一台计算机上运行的应用程序之间的旧Windows-3.x样式通信协议)打开文件,则会出现此错误。

您可以在资源管理器的文件夹选项的文件类型中找到它(可能在Windows 7上的其他位置,但是管理员可以在某些地方设置要使用哪些程序打开哪些文件)。

选中“使用DDE”选项后,Windows将首先检查该程序是否已在运行,然后(如果已运行)向其发送DDE消息(由3个文本组成,“应用程序”,“主题”和“消息” )。这样,即使它已经在运行,它也可以避免再次打开该程序。当程序未运行时,它将正常启动。如果DDE连接失败,将出现您提到的对话框,它将仅重新正常启动程序。

因此,最简单的解决方法就是禁用数据库文件扩展名“ Use DDE”(我猜是.mdb)。这样做的唯一缺点是:当您打开数据库并且Access已经在运行时,Windows将打开Access的第二个实例,这将依次注意到第一个实例,并发送DDE消息并在此之后退出。即 您不必要地启动Access,以便它可以立即再次关闭。但是如今,使用快速的CPU和硬盘,我想这是可以接受的:-)

更复杂的修复方法是检查这些设置中是否存在错误(例如错误的主题或错误的应用程序),然后进行修复。这样做将需要您访问可以打开文件的另一台(也许是虚拟的)计算机,以便可以比较DDE配置。

编辑:根据此网站,该选项卡已在Vista中删除。您始终可以在注册表中手动进行操作:查找HKEY_CLASSES_ROOT\.mdb其默认值(假设是mdbfile),然后查看该默认值(HKEY_CLASSES_ROOT\mdbfile\shell\open\ddeexec)。


我可以使用另一台正在运行的机器。我在哪里可以比较DDE配置?
诺亚

@Noah:在Windows资源管理器中,转到“工具”->“文件夹选项”。单击文件类型选项卡。查找mdb文件类型。选择高级。单击“打开”操作,然后选择“编辑...”。请记住,如果要将它与另一个工作站进行比较,则另一个工作站可能使用DDE很好,但是由于您的工作站没有使用DDE,请尝试取消选中它并查看它是否有效(可能在重新启动后)。
安迪

Windows 7没有“文件夹选项”选项卡
Noah 2009年

根据mydigitallife.info/2008/06/20/…,该选项卡已在Vista中删除。您总是可以在注册表中手动执行此操作:查找HKEY_CLASSES_ROOT \ .mdb的默认值(假设它是mdbfile),然后查看该默认值(HKEY_CLASSES_ROOT \ mdbfile \ shell \ open \ ddeexec)...
mihi

您可以将最后一条评论添加到您的答案中吗?
挪亚

2

这是我为Access 2002找到的解决方案。与其他版本的Access相似。

  1. 开放存取
  2. 点击工具
  3. 点击选项
  4. 单击高级选项卡
  5. 取消选中“忽略DDE请求”旁边的框
  6. 关闭访问

它为我工作!不再出现“将命令发送到程序时出现问题。” 错误。

对于不同版本的Access,“忽略DDE请求”选项的描述可能有所不同,但是您应该能够找到可兼容的内容。

希望对其他有相同问题的人有所帮助。


1

在已安装的office文件夹中。右键单击excel / winword .exe并选择属性。选择“兼容性”选项卡,并确保未选中“在兼容模式下运行此程序”。



1

这是Access 2007的修复程序:

  • 单击Access左上角的Office“硬币”。
  • 选择“访问选项”
  • 选择“高级”选项
  • 滚动到底部,然后取消选中“忽略DDE请求”

应该打开得很好,而不必弄乱注册表。


0

有没有人看过这样的东西?

可能是因为此MSKB文章中记录了该错误。也曾在ZoneAlarm中提到过它。


我阅读了这些MSKB文章,但根本不使用ZoneAlarm。这是香草的Win7升级
诺亚

我没有解决方案,仅指出此错误非常普遍。但是答案充其量是模糊的,似乎是这些Windows谜团之一。:)

0

活动日志:

我使用控制面板更改了Office 2007的安装,删除了Access。然后使用“控制面板”,将Access添加回去。这对问题没有影响。

我使用控制面板修复Office 2007安装,然后重新启动。这对问题没有影响。

注意:

  • 当我双击该文件时,会出现问题。当我右键单击时,选择OpenWith并选择Access,不会发生此问题。
  • Excel不会发生此问题

0

我不是很确定,但可能是因为在访问此选项时听到的DDE呼叫已禁用。我在Word和Excel中也看到了此选项,但不记得访问了。也许是一个安全问题,可以更好地禁用此功能...


0

我不使用Access,但是最近在Win7上使用Excel和Word(2007)开始遇到相同的问题,同时从“开始”菜单中的“最近”列表中打开文档(使用Word快捷菜单菜单项上的箭头)。DDE复选框解决方案不适用于我,因为它尚未被选中(就我所知,它在Word中并不存在)。

我偶然发现了一个似乎可以解决该问题的解决方案:当我打开文档快捷方式的“属性”对话框(从上下文菜单;请参见下面的屏幕截图)时,我注意到“打开方式”字段已以某种方式更改为Microsoft Word以外的其他应用程序。单击“更改”按钮使我能够将此文件与“ Microsoft Office Word”重新关联(而不必与注册表打乱)。

在此处输入图片说明


0

如果将Office与带有Access ADP文件的Windows 7一起使用时出现此错误,则问题可能是由于防火墙引起的。

具有Access 2007的Windows XP使用SMB与MSSQL Server进行通信。具有Access 2007的Windows 7使用TCP(标准SQL端口)端口1433尝试访问MSSQL Server。如果您具有Windows防火墙或阻止端口1433的硬件防火墙,它将尝试3次进行连接,而第三次失败时,它将切换到SMB并正常工作。

在运行SQL Server的服务器上打开TCP端口1433。

我还没有找到为什么Windows 7首先使用TCP端口1433而不是XP这样的SMB的原因,并且还没有找到如何更改它的方法。


无论如何,mysql与这个word / excel应用程序有什么关系?我没明白你的意思。
gumuruh 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.