Я только что обновился до Windows 7, и после переустановки MS Office у меня возникает интересная ошибка. Когда я щелкаю по базе данных, я получаю всплывающее сообщение «При отправке команды в программу возникла проблема», но файловое приложение все равно запускается, и соответствующая база данных действительно открывается.
Кто-нибудь видел что-нибудь подобное?
Как бы я занялся расследованием, а затем решением этой проблемы?
Примечание: я не использую Zone-Alarm. Большинство онлайн-поисков по этой проблеме возвращают различные сайты и статьи MSKB, обсуждающие проблемы с использованием Zone-Alarm.
РЕШЕНО: Благодаря Mihi --- После переименования ключа реестра из ddexec в NOddeexec проблема исчезла - до сих пор не уверен, почему DDE сломан, но работает достаточно хорошо для меня сейчас
Ответы:
Если бы эта проблема возникла, но только с конкретными офисными продуктами (т. Е. Excel и Word работали бы, но Access не получал сообщение).
Вот как я исправил проблему в Windows 7 - 64-битной версии (возможно, будет работать и для Vista).
Использование редактора реестра, поставляемого с Windows 7 (Regedit)
HKEY_CLASSES_ROOT\.mdb
(Я имел дело с Office 2007, но просто найдите нужную запись расширения файла) .(Default)
значение записи, а затем найдите ключ, на которыйHKEY_CLASSES_ROOT
он ссылается (в моем случае это Access.MDBFile) .shell
и удалите его (см. Предупреждение выше)Проверив мои настройки после этого, заметил, что
Access.MDBFile
ключ в реестре изменился, теперь у него естьCLSID
ключ, указывающий на новый дом ассоциации файлов.CLSID
(в моем случаеHKEY_CLASSES_ROOT\Access.MDBFile\CLSID
,(Default)
значение было{73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}
) .CLSID
(исключая фигурные скобки) , не забудьте проверить подLook at
->Keys
перед выполнением поиска (в моем случае найден ключ,HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}
но это может отличаться, мой пример для 64-битной системы, обрабатывающей 32-битную версию Office 2007) .источник
По сути, эта ошибка появляется, если тип файла настроен на использование DDE (старый протокол связи в стиле Windows-3.x между приложениями, работающими на одном компьютере) для открытия файла.
Вы найдете его в типах файлов в параметрах папок проводника (может быть, где-то еще в Windows 7, но там будет место, где администратор может настроить, какие файлы открывать какими программами).
Когда этот параметр «Использовать DDE» установлен, Windows сначала проверит, запущена ли уже программа, а затем (если она это сделает) отправит ей сообщение DDE (состоящее из 3 текстов: «Приложение», «Тема» и «Сообщение»). ). Таким образом, можно избежать повторного открытия программы, даже если она уже запущена. Когда программа не запущена, она просто запускается нормально. В случае сбоя соединения DDE появится упомянутое вами диалоговое окно, и оно просто запустит программу снова в обычном режиме.
Итак, самое простое решение - просто отключить «Использовать DDE» для расширения файла вашей базы данных (я думаю, .mdb). Единственный недостаток: когда вы открываете базу данных и Access уже запущен, Windows откроет второй экземпляр Access, который, в свою очередь, заметит первый, отправит сообщение DDE и выйдет после этого. И. е. вы без необходимости запускаете Access, чтобы он мог снова закрыться. Но в наше время с быстрыми процессорами и жесткими дисками, я думаю, это приемлемо :-)
Более сложное исправление будет состоять в том, чтобы проверить, что-то не так в этих настройках (например, неправильная тема или неправильное приложение) и исправить это. Для этого вам потребуется доступ к другой (возможно, виртуальной) машине, на которой открываются файлы, чтобы вы могли сравнить конфигурацию DDE.
РЕДАКТИРОВАТЬ: Согласно этому сайту , эта вкладка была удалена в Vista. Вы всегда можете сделать это вручную в реестре: найдите
HKEY_CLASSES_ROOT\.mdb
его значение по умолчанию (скажем, оно естьmdbfile
), а затем посмотрите на это значение по умолчанию (HKEY_CLASSES_ROOT\mdbfile\shell\open\ddeexec
).источник
Вот решение, которое я нашел для Access 2002. Оно будет аналогичным для других версий Access.
Это сработало для меня! Нет больше «Не удалось отправить команду в программу». ошибка.
Для разных версий Access опция «Игнорировать запросы DDE» может быть сформулирована немного по-разному, но вы сможете найти что-нибудь совместимое.
Я надеюсь, что это помогает другим, у кого такая же проблема.
источник
В установленной офисной папке. щелкните правой кнопкой мыши на Excel / Winword .exe и выберите свойства. Перейдите на вкладку «Совместимость» и убедитесь, что «запускать эту программу в режиме совместимости для» НЕПРОВЕРЕНО.
источник
Исправьте это из MS - при отправке команды в программу возникла проблема.
(Excel открывается с ошибкой или без отображения книги).
Эта статья была ранее опубликована под Q211494.
источник
Вот исправление для Access 2007:
Должен открываться нормально, без необходимости возиться с реестром.
источник
вероятно, так как ошибка задокументирована в этой статье MSKB . это также было упомянуто в связи с ZoneAlarm.
источник
Журнал деятельности:
Я использовал Панель управления, чтобы изменить установку Office 2007, удалив Access. Затем с помощью панели управления я добавил Access обратно. Это не повлияло на проблему.
Я использовал Панель управления для восстановления установки Office 2007, затем перезагрузил компьютер. Это не повлияло на проблему.
НОТА:
источник
Я не уверен, но может ли быть так, что при доступе эта опция для прослушивания по DDE-Calls отключена. Я видел эту опцию в Word и Excel тоже, но не помню доступа. Возможно проблема безопасности, чтобы лучше отключить это ...
источник
Я не пользуюсь Access, но недавно я столкнулся с той же проблемой с Excel и Word (2007) на Win7 при открытии документов из списка «Недавние» в моем меню «Пуск» (используя стрелку в пункте меню «Ярлык» Word). Решение DDE чекбокс не применимо ко мне, так как оно уже было не проверено (и насколько я знаю, в Word не существует).
Я наткнулся на решение, которое, похоже, устранило проблему для меня: открыв диалоговое окно «Свойства» для ярлыка документа (из контекстного меню; см. Скриншот ниже), я заметил, что поле «Opens With» каким-то образом было изменено на другое приложение, кроме Microsoft Word. Нажатие на кнопку «Изменить» позволило мне повторно связать этот файл с «Microsoft Office Word» (без необходимости связываться с реестром).
источник
Если эта ошибка появляется при использовании Office с Windows 7 с файлом Access ADP, возможно, проблема связана с брандмауэром.
Windows XP с Access 2007 использует SMB для связи с сервером MSSQL. Windows 7 с Access 2007 использует TCP (стандартный порт SQL) порт 1433, чтобы попытаться добраться до MSSQL Server. Если у вас установлен брандмауэр Windows или порт 1433, блокирующий аппаратный брандмауэр, он пытается установить соединение 3 раза, а в третий раз при сбое он переключается на SMB и работает нормально.
Откройте TCP-порт 1433 на сервере, на котором работает SQL Server.
Я не выяснил, почему Windows 7 сначала использует TCP-порт 1433 вместо SMB, как XP, и я не выяснил, как это изменить.
источник