Pourquoi Access signale-t-il qu'il ne peut pas recevoir de commande pour son programme?

9

Je viens de passer à Windows 7 et, après avoir réinstallé mon MS Office, j'ai une erreur intéressante. Lorsque je clique sur une base de données, je reçois un message contextuel "Il y a eu un problème lors de l'envoi de la commande au programme", mais l'application de fichier démarre toujours et la base de données appropriée s'ouvre.

Quelqu'un a-t-il déjà vu quelque chose comme ça?

Comment pourrais-je procéder pour enquêter puis résoudre ce problème?

Remarque: je n'utilise pas Zone-Alarm. La plupart des recherches en ligne sur ce problème renvoient divers sites et articles MSKB traitant des problèmes d'utilisation de Zone-Alarm

RESOLU: Merci à Mihi --- Après avoir renommé la clé de registre de ddexec en NOddeexec, le problème a disparu - toujours pas sûr pourquoi le DDE est cassé, mais fonctionne assez bien pour moi maintenant

Noé
la source
Cliquez-vous sur le fichier de base de données lui-même ou sur un raccourci vers celui-ci?
JohnFx
Je clique sur le fichier de base de données lui-même.
Noah
Utilisez-vous un autre pare-feu?
harrymc
Seul le pare-feu standard Win-7 inclus. En outre, le fichier se trouve sur mon lecteur local dans un sous-répertoire de MyDocuments
Noah
Êtes-vous connecté en tant qu'administrateur? Avez-vous essayé de désactiver complètement l'UAC?
harrymc

Réponses:

2

Avait ce problème mais uniquement avec des produits bureautiques spécifiques (c'est-à-dire qu'Excel et Word fonctionneraient mais Access échouerait avec le message).

Voici comment j'ai résolu le problème dans Windows 7 - 64 bits (cela pourrait également fonctionner pour Vista).

REMARQUE: cette solution implique la modification de votre registre système. Veuillez faire attention car une modification incorrecte du registre pourrait corrompre votre système d'exploitation!

Utilisation de l'Éditeur du Registre fourni avec Windows 7 (Regedit)

  • Vérifiez la clé d'extension dans le registre pour l'association actuelle
  • HKEY_CLASSES_ROOT\.mdb (Je faisais affaire avec Office 2007, mais recherchez simplement l'entrée d'extension de fichier qui vous intéresse) .
  • Vérifiez l' (Default)entrée de valeur, puis recherchez la clé à laquelle HKEY_CLASSES_ROOTelle fait référence (dans mon cas, c'est Access.MDBFile) .
  • Localisez la sous-clé shellet supprimez-la (voir l'avertissement ci-dessus)
  • Revenez à et localisez un fichier que vous souhaitez ouvrir, il vous sera maintenant demandé de choisir un programme pour l'ouvrir. À ce stade, localisez le programme de bureau que vous souhaitez utiliser pour ouvrir le fichier et votre terminé.

En vérifiant mes paramètres après avoir fait cela, j'ai remarqué que la Access.MDBFileclé dans le registre avait changé, il y avait maintenant une CLSIDclé qui pointait vers le nouveau domicile de l'association de fichiers.

  • La sous-clé CLSID (dans mon cas HKEY_CLASSES_ROOT\Access.MDBFile\CLSID, la (Default)valeur était {73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}) .
  • Recherche utilisée pour rechercher CLSID (à l'exception des accolades) , n'oubliez pas de vérifier sous Look at-> Keysavant d'effectuer la recherche (dans mon cas, clé trouvée HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}mais cela pourrait différer, mon exemple est pour un système 64 bits gérant une version 32 bits d'Office 2007) .
  • Cette référence fait référence à «l'application Microsoft Office Access» qui utilise un serveur In-process pour lancer l'application, en utilisant cette méthode, j'ai corrigé mes associations de fichiers Access.
Lankymart
la source
6

Fondamentalement, cette erreur apparaît si un type de fichier est configuré pour utiliser DDE (un ancien protocole de communication de type Windows-3.x entre des applications exécutées sur le même ordinateur) pour ouvrir un fichier.

Vous le trouverez dans les types de fichiers dans les options de dossier de l'explorateur (peut-être ailleurs sur Windows 7, mais il y aura un endroit où un administrateur pourra configurer les fichiers à ouvrir avec quels programmes).

Lorsque cette option "Utiliser DDE" est cochée, Windows vérifie d'abord si le programme est déjà en cours d'exécution, puis (si c'est le cas) lui envoie un message DDE (composé de 3 textes, "Application", "Rubrique" et "Message" ). De cette façon, il peut éviter d'ouvrir à nouveau le programme même s'il est déjà en cours d'exécution. Lorsque le programme n'est pas en cours d'exécution, il est simplement démarré normalement. En cas d'échec de la connexion DDE, la boîte de dialogue que vous mentionnez apparaîtra et redémarrera simplement le programme normalement.

Ainsi, la solution la plus simple consiste simplement à désactiver "Utiliser DDE" pour l'extension de fichier de votre base de données (je suppose .mdb). Le seul inconvénient de ceci: lorsque vous ouvrez une base de données et Access est déjà en cours d'exécution, Windows ouvrira une deuxième instance d'Access, qui à son tour remarquera la première et enverra le message DDE et quittera après cela. C'est à dire. vous démarrez inutilement Access pour pouvoir le refermer immédiatement. Mais de nos jours avec des processeurs rapides et des disques durs, je suppose que cela est acceptable :-)

La solution la plus complexe serait de vérifier si quelque chose ne va pas dans ces paramètres (comme un mauvais sujet ou une mauvaise application) et de corriger cela. Pour ce faire, vous devez avoir accès à une autre machine (peut-être virtuelle) où les fichiers d'ouverture fonctionnent afin que vous puissiez comparer la configuration DDE.

EDIT: Selon ce site Web , cet onglet a été supprimé dans Vista. Vous pouvez toujours le faire manuellement dans le registre: recherchez HKEY_CLASSES_ROOT\.mdbsa valeur par défaut (disons que c'est le cas mdbfile), puis examinez cette valeur par défaut ( HKEY_CLASSES_ROOT\mdbfile\shell\open\ddeexec).

mihi
la source
J'ai accès à une autre machine qui fonctionne. Où chercher pour comparer la configuration DDE?
Noah
@Noah: Dans l'Explorateur Windows, accédez à Outils -> Options des dossiers. Cliquez sur l'onglet Types de fichiers. Recherchez le type de fichier mdb. Sélectionnez Avancé. Cliquez sur l'action "Ouvrir" et sélectionnez "Modifier ...". Gardez à l'esprit que si vous comparez cela à un autre poste de travail, l'autre poste de travail peut très bien utiliser DDE, mais comme votre poste de travail ne l'est pas, essayez de le décocher et de voir si cela fonctionne (éventuellement après un redémarrage).
Andy
Windows 7 n'a pas d'onglet "Options des dossiers"
Noah
Selon mydigitallife.info/2008/06/20/… , cet onglet a été supprimé dans Vista. Vous pouvez toujours le faire manuellement dans le registre: recherchez HKEY_CLASSES_ROOT \ .mdb pour sa valeur par défaut (disons qu'il s'agit de mdbfile), puis examinez cette valeur par défaut (HKEY_CLASSES_ROOT \ mdbfile \ shell \ open \ ddeexec) ...
mihi
Pouvez-vous ajouter ce dernier commentaire à votre réponse.
Noah
2

Voici la solution que j'ai trouvée pour Access 2002. Elle sera similaire pour les autres versions d'Access.

  1. Accès libre
  2. Cliquez sur Tools
  3. Cliquez sur Options
  4. Cliquez sur l'onglet Avancé
  5. Décochez la case à côté de "Ignorer les demandes DDE"
  6. Fermer l'accès

Ça a marché pour moi! Plus "Il y a eu un problème lors de l'envoi de la commande au programme." Erreur.

Pour les différentes versions d'Access, l'option "Ignorer les demandes DDE" peut être indiquée un peu différemment, mais vous devriez pouvoir trouver quelque chose de compérable.

J'espère que cela aide les autres qui ont le même problème.

Robert Valentine
la source
1

Dans le dossier Office installé. faites un clic droit sur excel / winword .exe et sélectionnez les propriétés. Sélectionnez l'onglet de compatibilité et assurez-vous que "exécuter ce programme en mode de compatibilité pour" est NON CONTRÔLÉ.

Mick
la source
1

Voici le correctif pour Access 2007:

  • Cliquez sur le "Coin" Office dans le coin supérieur gauche d'Access.
  • Sélectionnez "Options d'accès"
  • Sélectionnez l'option "Avancé"
  • Faites défiler jusqu'au botton et décochez la case "Ignorer les demandes DDE"

Devrait bien s'ouvrir sans avoir à s'embêter avec le registre.

Jam88
la source
0

Quelqu'un a-t-il déjà vu quelque chose comme ça?

probablement, puisque l'erreur est documentée dans cet article MSKB . il a également été mentionné à propos de ZoneAlarm.


la source
J'ai lu ces articles MSKB, mais je n'utilise pas du tout ZoneAlarm. Il s'agit d'une mise à niveau vanilla Win7
Noah
je n'ai pas de solution, soulignant seulement que cette erreur est assez courante. mais les réponses sont au mieux vagues, semble être l'un de ces mystères de fenêtres. :)
0

Journal des activités:

J'ai utilisé le Panneau de configuration pour modifier l'installation d'Office 2007, en supprimant Access. Ensuite, en utilisant le Panneau de configuration, j'ai ajouté Access en arrière. Cela n'a eu aucun effet sur le problème.

J'ai utilisé le Panneau de configuration pour réparer l'installation d'Office 2007, puis j'ai redémarré. Cela n'a eu aucun effet sur le problème.

REMARQUE:

  • Lorsque je double-clique sur le fichier, le problème se produit. Lorsque je clique avec le bouton droit, choisissez OpenWith et sélectionnez Access, le problème ne se produit pas.
  • Ce problème ne se produit pas avec Excel
Noé
la source
0

Je ne suis pas sûr, mais est-ce que l'accès à cette option pour entendre sur les appels DDE est désactivé. j'ai vu cette option dans Word et exceller aussi mais je ne me souviens pas de l'accès. Peut-être un problème de sécurité pour mieux désactiver cela ...

La glace
la source
0

Je n'utilise pas Access, mais j'ai récemment commencé à rencontrer le même problème avec Excel et Word (2007) sur Win7 lors de l'ouverture de documents à partir de la liste "Récent" dans mon menu Démarrer (en utilisant la flèche sur l'élément de menu de raccourci Word). La solution de case à cocher DDE ne s'applique pas à moi, car elle était déjà décochée (et n'existe pas dans Word, pour autant que je sache).

Je suis tombé sur une solution qui semble avoir résolu le problème pour moi: lorsque j'ai ouvert la boîte de dialogue Propriétés pour le raccourci du document (dans le menu contextuel; voir capture d'écran ci-dessous), j'ai remarqué que le champ "Ouvre avec" avait été changé en quelque sorte pour une autre application autre que Microsoft Word. Cliquer sur le bouton "Modifier" m'a permis de réassocier ce fichier avec "Microsoft Office Word" (sans avoir à jouer avec le registre).

entrez la description de l'image ici

kmote
la source
0

Si cette erreur apparaît lors de l'utilisation d'Office avec Windows 7 avec un fichier Access ADP, le problème peut être dû à un pare-feu.

Windows XP avec Access 2007 utilise SMB pour la communication avec le serveur MSSQL. Windows 7 avec Access 2007 utilise le port TCP (port SQL standard) 1433 pour essayer d'accéder au serveur MSSQL. Si vous avez un pare-feu Windows ou un pare-feu matériel bloquant le port 1433, il essaie 3 fois d'établir une connexion et lorsqu'il échoue pour la troisième fois, il passe à SMB et fonctionne normalement.

Ouvrez le port TCP 1433 sur le serveur exécutant SQL Server.

Je n'ai pas découvert pourquoi Windows 7 utilise d'abord le port TCP 1433 au lieu de SMB comme XP, et je n'ai pas découvert comment le changer.

Mike B
la source
quelle est la relation de mysql dans cette application word / excel de toute façon? Je n'ai pas compris ce que tu veux dire ... désolé.
gumuruh