9

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

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

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

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

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

11 ответов11

6

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

2

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

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

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

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

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

2

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

Исправьте это из MS - при отправке команды в программу возникла проблема.

(Excel открывается с ошибкой или без отображения рабочей книги)
Эта статья была ранее опубликована под Q211494.

1

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

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

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

1

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

0

Я не пользуюсь Access, но недавно я столкнулся с той же проблемой с Excel и Word (2007) на Win7 при открытии документов из списка "Недавние" в моем меню "Пуск" (используя стрелку в пункте меню "Ярлык" Word). Решение с флажками DDE не применимо ко мне, так как оно уже не проверялось (и, насколько я знаю, не существует в Word).

Я наткнулся на решение, которое, похоже, устранило проблему для меня: открыв диалоговое окно "Свойства" для ярлыка документа (из контекстного меню; см. Скриншот ниже), я заметил, что поле "Открыть с помощью" каким-то образом было изменено на другое приложение, кроме Microsoft Word. Нажатие на кнопку "Изменить" позволило мне повторно связать этот файл с "Microsoft Office Word" (без необходимости связываться с реестром).

0

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

0

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

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

0

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

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

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

НОТА:

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

Если эта ошибка появляется при использовании 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, и я не выяснил, как это изменить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .