Noa*_*oah 10 windows-7 microsoft-access dde
我刚刚升级到 Windows 7,在重新安装我的 MS Office 后,我遇到了一个有趣的错误。当我单击一个数据库时,我收到一条弹出消息“向程序发送命令时出现问题”,但文件应用程序仍将启动,并且正确的数据库确实打开了。
有没有人见过这样的事情?
我将如何调查并解决此问题?
注意: 我没有使用区域警报。大多数关于此问题的在线搜索都会返回讨论使用 Zone-Alarm 的问题的各种站点和 MSKB 文章
已解决: 感谢 Mihi --- 将注册表项从 ddexec 重命名为 NOddeexec 后,问题消失了——仍然不确定 DDE 为何损坏,但现在对我来说已经足够好了
基本上,如果文件类型设置为使用 DDE(运行在同一台计算机上的应用程序之间的旧的 Windows-3.x 风格的通信协议)打开文件,则会出现此错误。
您将在资源管理器的文件夹选项中的文件类型中找到它(可能在 Windows 7 的其他地方,但管理员可以在某些地方设置要使用哪些程序打开哪些文件)。
选中“使用 DDE”选项后,Windows 将首先检查程序是否已在运行,然后(如果已运行)向其发送 DDE 消息(由 3 个文本组成,“应用程序”、“主题”和“消息”) )。这样即使程序已经在运行,它也可以避免再次打开程序。当程序没有运行时,它只是正常启动。如果 DDE 连接失败,将出现您提到的对话框,它只会再次正常启动程序。
因此,最简单的解决方法就是为数据库的文件扩展名(我猜是 .mdb)禁用“使用 DDE”。唯一的缺点是:当您打开一个数据库并且 Access 已经在运行时,Windows 将打开 Access 的第二个实例,它将依次通知第一个实例并发送 DDE 消息并在此之后退出。IE。您不必要地启动 Access,以便它可以立即再次关闭。但是现在有了快速的 CPU 和硬盘,我想这是可以接受的 :-)
更复杂的修复方法是检查这些设置中是否有问题(例如错误的主题或错误的应用程序)并修复它。这样做需要您访问另一台(可能是虚拟)机器,在其中打开文件可以工作,以便您可以比较 DDE 配置。
编辑:根据此网站,该选项卡已在 Vista 中删除。您始终可以在注册表中手动执行此操作:查找HKEY_CLASSES_ROOT\.mdb其默认值(假设为mdbfile),然后查看该默认值 ( HKEY_CLASSES_ROOT\mdbfile\shell\open\ddeexec)。
存在此问题,但仅限于特定的办公产品(即 Excel 和 Word 可以工作,但 Access 将失败并显示该消息)。
以下是我在 Windows 7 - 64 位中解决该问题的方法(可能也适用于 Vista)。
注意:此解决方案涉及编辑系统注册表。请小心,因为错误地编辑注册表可能会损坏您的操作系统!
使用 Windows 7 附带的注册表编辑器 (Regedit)
HKEY_CLASSES_ROOT\.mdb (我正在处理 Office 2007,但只需找到您感兴趣的文件扩展名条目)。(Default)键(在我的例子中是 Access.MDBFile)。HKEY_CLASSES_ROOTshell并将其删除(请参阅上面的警告)执行此操作后检查我的设置,注意到Access.MDBFile注册表中的密钥已更改,它现在有一个CLSID指向文件关联的新目录的密钥。
CLSID (在我的例子中HKEY_CLASSES_ROOT\Access.MDBFile\CLSID,(Default)值为{73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9})。CLSID (不包括大括号) ,记得在执行搜索之前检查Look at->下(在我的例子中找到了 key ,但这可能有所不同,我的示例是处理 32 位版本的 Office 2007 的 64 位系统)。KeysHKEY_CLASSES_ROOT\Wow6432Node\CLSID\{73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}| 归档时间: |
|
| 查看次数: |
57441 次 |
| 最近记录: |