Почему Access сообщает, что не может получить команду для своей программы?

56413
Noah

Я только что обновился до Windows 7, и после переустановки MS Office у меня возникает интересная ошибка. Когда я щелкаю по базе данных, я получаю всплывающее сообщение «При отправке команды в программу возникла проблема», но файловое приложение все равно запускается, и соответствующая база данных действительно открывается.

Кто-нибудь видел что-нибудь подобное?

Как бы я занялся расследованием, а затем решением этой проблемы?

Примечание: я не использую Zone-Alarm. Большинство онлайн-поисков по этой проблеме возвращают различные сайты и статьи MSKB, обсуждающие проблемы с использованием Zone-Alarm.

РЕШЕНО: Благодаря Mihi --- После переименования ключа реестра из ddexec в NOddeexec проблема исчезла - до сих пор не уверен, почему DDE не работает, но работает достаточно хорошо для меня сейчас

9
Вы нажимаете на сам файл базы данных или ярлык к нему? JohnFx 14 лет назад 0
Я нажимаю на сам файл базы данных. Noah 14 лет назад 0
Вы используете какой-либо другой брандмауэр? harrymc 14 лет назад 0
Только в стандартную Win-7 включен брандмауэр. Кроме того, файл находится на моем локальном диске в подкаталоге MyDocuments Noah 14 лет назад 0
Вы вошли как администратор? Вы пытались полностью отключить UAC? harrymc 14 лет назад 0
Кроме того, есть ли интересные сообщения об ошибках в журнале событий? harrymc 14 лет назад 0
Еще один: у вас есть что-нибудь в "C: \ Program Files \ Microsoft Office \ Office"\ЗАПУСКАТЬ" ? harrymc 14 лет назад 0
В каталоге C: \ Program Files \ Microsoft Office \ Office12 нет каталога STARTUP. Noah 14 лет назад 0
У меня есть права администратора, но UAC не выключен. Я постараюсь, что нет интересных сообщений об ошибках в журнале событий Noah 14 лет назад 0
Отличается ли результат, если вы сначала откроете Access, а затем откроете базу данных оттуда? Есть ли другой результат, если вы удерживаете клавишу SHIFT при ее открытии? David W. Fenton 14 лет назад 0
Открывая Access первым, все отлично работает. Нет другого результата с SHIFT Noah 14 лет назад 0
Я знаю, что вы решили проблему, но клавишу SHIFT необходимо проверять при открытии из ярлыка, а также из Access. David W. Fenton 14 лет назад 0

11 ответов на вопрос

6
mihi

По сути, эта ошибка появляется, если тип файла настроен на использование 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).

У меня есть доступ к другой рабочей машине. Где бы я посмотрел, чтобы сравнить конфигурацию DDE? Noah 14 лет назад 0
@Noah: в проводнике Windows зайдите в Сервис -> Свойства папки. Перейдите на вкладку «Типы файлов». Найдите тип файла MDB. Выберите Дополнительно. Нажмите на действие «Открыть» и выберите «Изменить ...». Имейте в виду, что если вы сравниваете это с другой рабочей станцией, другая рабочая станция может использовать DDE просто отлично, но, поскольку ваша рабочая станция не работает, попробуйте снять ее и посмотреть, работает ли она (возможно, после перезагрузки). Andy 14 лет назад 0
Windows 7 не имеет вкладки «Параметры папки» Noah 14 лет назад 0
Согласно http://www.mydigitallife.info/2008/06/20/windows-vista-file-associations-advanced-editing-management-tools/, эта вкладка была удалена в Vista. Вы всегда можете сделать это вручную в реестре: найдите HKEY_CLASSES_ROOT \ .mdb в качестве значения по умолчанию (скажем, это mdbfile), а затем посмотрите на это значение по умолчанию (HKEY_CLASSES_ROOT \ mdbfile \ shell \ open \ ddeexec) ... mihi 14 лет назад 0
Можете ли вы добавить этот последний комментарий к вашему ответу. Noah 14 лет назад 0
2
Robert Valentine

Вот решение, которое я нашел для Access 2002. Оно будет похоже на другие версии Access.

  1. Открытый доступ
  2. Нажмите на Инструменты
  3. Нажмите на Опции
  4. Нажмите на вкладку "Дополнительно"
  5. Снимите флажок «Игнорировать запросы DDE»
  6. Закрыть доступ

Это сработало для меня! Нет больше "Не удалось отправить команду в программу". ошибка.

Для разных версий Access опция «Игнорировать запросы DDE» может быть сформулирована немного по-разному, но вы сможете найти что-нибудь совместимое.

Я надеюсь, что это помогает другим, у кого такая же проблема.

2
Lankymart

Если бы эта проблема возникла, но только с определенными офисными продуктами (т. Е. 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)значение было ) .
  • Использовал find для поиска CLSID (исключая фигурные скобки), не забудьте проверить под Look at-> Keysперед выполнением поиска (в моем случае найден ключ, HKEY_CLASSES_ROOT\Wow6432Node\CLSID\но это может отличаться, мой пример для 64-битной системы, обрабатывающей 32-битную версию Office 2007) .
  • Это ссылка на «Приложение Microsoft Office Access», которое использует внутрипроцессный сервер для запуска приложения, с помощью этого метода исправлены мои ассоциации файлов Access.
1
Mick

В установленной офисной папке. щелкните правой кнопкой мыши на Excel / Winword .exe и выберите свойства. Перейдите на вкладку «Совместимость» и убедитесь, что «запускать эту программу в режиме совместимости для» НЕ ВЫБРАН.

1
Bratch

Fix It from MS - There was a problem sending the command to the program.

(Excel opens with an error or without displaying a workbook)
This article was previously published under Q211494.

1
Jam88

Вот исправление для Access 2007:

  • Нажмите на офис «Монета» в левом верхнем углу Access.
  • Выберите «Параметры доступа»
  • Выберите опцию «Дополнительно»
  • Перейдите к основанию и снимите флажок «Игнорировать запросы DDE»

Должен открываться нормально, без необходимости возиться с реестром.

0

Кто-нибудь видел что-нибудь подобное?

вероятно, так как ошибка задокументирована в этой статье MSKB . это также было упомянуто в связи с ZoneAlarm.

Я прочитал те статьи MSKB, но я вообще не использую ZoneAlarm. Это ванильное обновление Win7 Noah 14 лет назад 0
У меня нет решения, я только указываю, что эта ошибка встречается довольно часто. но ответы в лучшем случае расплывчаты, кажется, одна из тех загадок окон. :) 14 лет назад 0
0
Noah

Журнал деятельности:

Я использовал Панель управления, чтобы изменить установку Office 2007, удалив Access. Затем с помощью панели управления я добавил Access обратно. Это не повлияло на проблему.

Я использовал Панель управления для восстановления установки Office 2007, затем перезагрузил компьютер. Это не повлияло на проблему.

НОТА:

  • Когда я дважды щелкаю файл, возникает проблема. Когда я щелкаю правой кнопкой мыши, выбираю OpenWith и выбираю Access, проблема не возникает.
  • Эта проблема не возникает с Excel
0
Ice

Я не уверен, но может ли быть так, что при доступе эта опция для прослушивания по DDE-Calls отключена. Я видел эту опцию в Word и Excel тоже, но не помню доступ. Возможно проблема безопасности, чтобы лучше отключить это ...

0
Mike B

Если эта ошибка появляется при использовании Office с Windows 7 с файлом Access ADP, возможно, проблема связана с брандмауэром.

Windows XP с Access 2007 использует SMB для связи с сервером MSSQL. Windows 7 с Access 2007 использует TCP (стандартный порт SQL) порт 1433, чтобы попытаться добраться до сервера MSSQL. Если у вас есть брандмауэр Windows или порт 1433, блокирующий аппаратный брандмауэр, он пытается установить соединение 3 раза, а в случае сбоя в третий раз он переключается на SMB и работает нормально.

Откройте TCP-порт 1433 на сервере, на котором работает SQL Server.

Я не выяснил, почему Windows 7 сначала использует TCP-порт 1433 вместо SMB, как XP, и я не выяснил, как это изменить.

каково отношение mysql к этому приложению word / excel? Я не понял, что вы имеете в виду ... извините. gumuruh 10 лет назад 0