Чому звіт Access не може отримати команду до своєї програми?


9

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

Хто-небудь бачив щось подібне?

Як би я почав розслідувати, а потім вирішити цю проблему?

Примітка: я не використовую Zone-Alarm. Більшість пошукових запитів в Інтернеті щодо цієї проблеми повертають різні сайти та статті MSKB, які обговорюють проблеми використання Zone-Alarm

ВИРІШИЛИ: Завдяки Mihi --- Після перейменування ключа реєстру з ddexec на NOddeexec проблема пішла - все ще не впевнений, чому DDE зламаний, але працює для мене досить добре зараз


Ви натискаєте на сам файл бази даних або ярлик до нього?
JohnFx

Я натискаю на сам файл бази даних.
Ной

Використовуєте будь-який інший брандмауер?
harrymc

Лише стандартний Win-7 включав брандмауер. Також файл знаходиться на моєму локальному диску у під-каталозі MyDocuments
Ной,

Ви ввійшли як адміністратор? Ви намагалися повністю вимкнути UAC?
harrymc

Відповіді:


2

Якби ця проблема була, але тільки з певними офісними продуктами (наприклад, Excel і Word працювали б, але доступ не зможе отримати повідомлення).

Ось як я виправив проблему в 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) .
  • Це посилання на "Додаток Microsoft Office Access", який використовує In-Process Server для запуску програми, використовуючи цей метод, виправлений моїми асоціаціями файлів доступу.

6

В основному ця помилка з’являється, якщо тип файлу налаштований для використання DDE (старого протоколу зв’язку в стилі Windows-3.x між програмами, що працюють на одному комп’ютері) для відкриття файлу.

Ви знайдете його у типах файлів у параметрах папок провідника (можливо, десь ще в Windows 7, але там буде десь місце, де адміністратор може встановити, які файли відкривати за допомогою яких програм).

Коли ця опція "Використовувати DDE" встановлена, Windows спочатку перевірить, чи програма вже запущена, а потім (якщо вона є) надсилає їй повідомлення DDE (що складається з 3-х текстів, "Застосування", "Тема" та "Повідомлення" ). Таким чином можна уникнути відкриття програми ще раз, навіть якщо вона вже запущена. Коли програма не працює, вона просто запускається нормально. У разі відмови підключення DDE з'явиться діалогове вікно, яке ви згадаєте, і воно просто запустить програму знову нормально.

Отже, найпростіше виправити - просто відключити "Використовувати DDE" для розширення файлів вашої бази даних (я думаю .mdb). Єдиний недолік цього: Коли ви відкриваєте базу даних і Access вже працює, Windows відкриє другий екземпляр Access, який, в свою чергу, помітить перший і відправить повідомлення DDE і після цього вийде. І. е. Ви невпинно запускаєте Access, щоб він одразу знову закривався. Але в наш час із швидкими процесорами та жорсткими дисками, я думаю, це прийнятно :-)

Більш складним виправленням буде перевірити, чи щось не в цих налаштуваннях (наприклад, неправильна тема чи неправильна програма) та виправити це. Для цього потрібно мати доступ до іншої (можливо, віртуальної) машини, де працює відкриття файлів, щоб ви могли порівняти конфігурацію DDE.

EDIT: За даними цього веб-сайту , ця вкладка була викинута у Vista. Ви завжди можете зробити це вручну в реєстрі: Знайдіть HKEY_CLASSES_ROOT\.mdbйого значення за замовчуванням (скажімо, воно є mdbfile), а потім подивіться на це значення за замовчуванням ( HKEY_CLASSES_ROOT\mdbfile\shell\open\ddeexec).


У мене є доступ до іншої робочої машини. Де б я шукав, щоб порівняти конфігурацію DDE?
Ной

@Noah: у Провіднику Windows перейдіть до Інструменти -> Параметри папок. Перейдіть на вкладку Типи файлів. Знайдіть тип файлу mdb. Виберіть Додатково. Клацніть на дії "Відкрити" і виберіть "Змінити ...". Майте на увазі, що якщо ви порівнюєте це з іншою робочою станцією, інша робоча станція може використовувати DDE просто чудово, але оскільки ваша робоча станція не є, спробуйте зняти прапорець і побачити, чи працює вона (можливо, після перезавантаження).
Енді

У Windows 7 немає вкладки "Параметри папок"
Ноя,

За даними 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

У встановленій папці офісу. клацніть правою кнопкою миші на excel / winword .exe та виберіть властивості. Виберіть вкладку сумісності та переконайтесь, що "запустити цю програму в режимі сумісності для" НЕ ВКАЗАНО.



1

Ось виправлення для Access 2007:

  • Клацніть на «Монета Office» у верхньому лівому куті доступу.
  • Виберіть "Параметри доступу"
  • Виберіть варіант «Додатково»
  • Перейдіть до ботону і зніміть прапорець "Ігнорувати запити DDE"

Слід відкрити штраф без того, щоб возитися з реєстром.


0

Хто-небудь бачив щось подібне?

ймовірно, оскільки помилка задокументована в цій статті MSKB . він також згадувався у зв'язку з ZoneAlarm.


Я читав ці статті MSKB, але ZoneAlarm взагалі не використовую. Це оновлення для ванілі Win7
Ной,

у мене немає рішення, лише вказуючи, що ця помилка є досить поширеною. але відповіді в кращому випадку нечіткі, здається, одна з тих таємниць Windows. :)

0

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

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

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

ПРИМІТКА:

  • Коли я двічі клацну по файлу, виникає проблема. Коли я клацну правою кнопкою миші, виберіть OpenWith і виберіть Access, проблема не виникає.
  • Ця проблема не виникає з Excel

0

Я не впевнений, але чи може це бути, що в доступі до цієї опції чути про DDE-дзвінки вимкнено. Я бачив цю опцію в Word і excel теж, але не пам’ятаю доступу. Можливо, питання безпеки, щоб краще вимкнути це ...


0

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

Я натрапив на рішення, яке, здається, вирішило проблему для мене: Коли я відкрив діалогове вікно Властивості для ярлика документа (з контекстного меню; див. Скріншот нижче), я помітив, що поле "Відкривається з" якось було змінено на інший додаток, окрім Microsoft Word. Клацання кнопки "Змінити" дозволило мені знову пов’язати цей файл із "Microsoft Office Word" (без того, щоб возитися з реєстром).

введіть тут опис зображення


0

Якщо ця помилка з’являється під час використання Office з Windows 7 з файлом доступу ADP, проблема може виникнути через брандмауер.

Windows XP з Access 2007 використовує SMB для зв'язку з сервером MSSQL. Windows 7 з Access 2007 використовує порт 1433 TCP (стандартний порт SQL), щоб спробувати дістатися до MSSQL Server. Якщо у вас є брандмауер Windows або апаратний брандмауер, що блокує порт 1433, він тричі намагається встановити з'єднання, а коли він не працює втретє, він переходить на SMB і працює нормально.

Відкрийте TCP-порт 1433 на сервері, на якому працює SQL Server.

Я не з'ясував, чому Windows 7 використовує TCP-порт 1433 спочатку замість SMB, як XP, і не дізнався, як це змінити.


яке відношення до mysql у цій програмі word / excel взагалі? Я не зрозумів, що ти маєш на увазі ... вибач.
gumuruh
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.