Perché Access segnala che non può ricevere un comando per il suo programma?


9

Ho appena effettuato l'aggiornamento a Windows 7 e, dopo aver reinstallato il mio MS Office, ho un errore interessante. Quando faccio clic su un database, viene visualizzato un messaggio popup "Si è verificato un problema durante l'invio del comando al programma", ma l'applicazione del file verrà comunque avviata e il database corretto verrà aperto.

Qualcuno ha mai visto qualcosa del genere?

Come farei per investigare e poi risolvere questo problema?

Nota: non sto usando Zone-Alarm. La maggior parte delle ricerche online su questo problema restituiscono vari siti e articoli MSKB che discutono dei problemi usando Zone-Alarm

RISOLTO: Grazie a Mihi --- Dopo aver rinominato la chiave del Registro di sistema da ddexec a NOddeexec, il problema è scomparso - non sono ancora sicuro del motivo per cui il DDE è rotto, ma ora funziona abbastanza bene per me


Stai facendo clic sul file del database stesso o su un collegamento ad esso?
JohnFx,

Sto facendo clic sul file del database stesso.
Noè,

Stai usando qualche altro firewall?
harrymc,

Solo il firewall standard incluso Win-7. Inoltre, il file si trova sul mio disco locale in una sottodirectory di MyDocuments
Noah,

Sei registrato come amministratore? Hai provato a disattivare completamente l'UAC?
harrymc,

Risposte:


2

Aveva questo problema, ma solo con prodotti per ufficio specifici (ad es. Excel e Word funzionavano ma Access non riusciva con il messaggio).

Ecco come ho risolto il problema in Windows 7 - 64 bit (probabilmente funzionerebbe anche per Vista).

NOTA: questa soluzione prevede la modifica del registro di sistema. Prestare attenzione poiché la modifica errata del registro potrebbe danneggiare il sistema operativo!

Utilizzando l'editor del registro fornito con Windows 7 (Regedit)

  • Controllare la chiave di estensione nel registro per l'associazione corrente
  • HKEY_CLASSES_ROOT\.mdb (Avevo a che fare con Office 2007 ma ho semplicemente individuato la voce dell'estensione di file che ti interessa) .
  • Controlla la (Default)voce del valore, quindi trova la chiave in HKEY_CLASSES_ROOTcui fa riferimento (nel mio caso questo è Access.MDBFile) .
  • Individua la chiave secondaria shelled eliminala (vedi avviso sopra)
  • Torna indietro e individua un file che desideri aprire, ti verrà ora chiesto di scegliere un programma con cui aprirlo. A questo punto individuare il programma di Office che si desidera utilizzare per aprire il file e il gioco è fatto.

Controllando le mie impostazioni dopo aver fatto questo, ho notato che la Access.MDBFilechiave nel registro era cambiata, ora aveva una CLSIDchiave che puntava alla nuova home dell'associazione di file.

  • La sottochiave CLSID (nel mio caso HKEY_CLASSES_ROOT\Access.MDBFile\CLSID, (Default)value era {73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}) .
  • Usato per cercare CLSID (escluso parentesi graffe) , ricordati di controllare sotto Look at-> Keysprima di eseguire la ricerca (nel mio caso ho trovato la chiave HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}ma questo potrebbe differire, il mio esempio è per il sistema a 64 bit che gestisce una versione a 32 bit di Office 2007) .
  • Questo riferimento è "Applicazione Microsoft Office Access" che utilizza un server in-process per avviare l'applicazione, utilizzando questo metodo risolto le mie associazioni di file di Access.

6

Fondamentalmente, questo errore appare se un tipo di file è impostato per utilizzare DDE (un vecchio protocollo di comunicazione in stile Windows-3.x tra applicazioni in esecuzione sullo stesso computer) per aprire un file.

Lo troverai nei tipi di file nelle opzioni di cartella di explorer (forse da qualche altra parte su Windows 7, ma ci sarà un posto in cui un amministratore può impostare quali file aprire con quali programmi).

Quando l'opzione "Usa DDE" è selezionata, Windows controlla prima se il programma è già in esecuzione, quindi (se lo fa) gli invia un messaggio DDE (composto da 3 testi, "Applicazione", "Argomento" e "Messaggio" ). In questo modo può evitare di riaprire il programma anche se è già in esecuzione. Quando il programma non è in esecuzione, viene appena avviato normalmente. Nel caso in cui la connessione DDE non riesca, verrà visualizzata la finestra di dialogo menzionata e il programma verrà riavviato normalmente.

Quindi, la soluzione più semplice è solo disabilitare "Usa DDE" per l'estensione del tuo database (immagino .mdb). L'unico inconveniente di questo: quando si apre un database e Access è già in esecuzione, Windows aprirà una seconda istanza di Access, che a sua volta noterà la prima e invierà il messaggio DDE e poi uscirà. I. e. stai avviando inutilmente Access in modo che possa richiudersi immediatamente. Ma al giorno d'oggi con CPU veloci e dischi rigidi, suppongo che questo sia accettabile :-)

La correzione più complessa sarebbe quella di verificare se qualcosa non va in queste impostazioni (come argomento sbagliato o applicazione errata) e risolverlo. Ciò richiederebbe l'accesso a un'altra macchina (forse virtuale) in cui funzionano i file di apertura in modo da poter confrontare la configurazione DDE.

EDIT: Secondo questo sito Web , quella scheda è stata eliminata in Vista. Puoi sempre farlo manualmente nel registro: cerca il HKEY_CLASSES_ROOT\.mdbsuo valore predefinito (diciamo che lo è mdbfile) e poi guarda quel valore predefinito ( HKEY_CLASSES_ROOT\mdbfile\shell\open\ddeexec).


Ho accesso a un'altra macchina funzionante. Dove guarderei per confrontare la configurazione DDE?
Noè,

@Noah: in Esplora risorse, vai su Strumenti -> Opzioni cartella. Fai clic sulla scheda Tipi di file. Trova il tipo di file mdb. Seleziona Avanzate. Fai clic sull'azione "Apri" e seleziona "Modifica ...". Tieni presente che se stai confrontando questo con un'altra workstation, l'altra workstation potrebbe usare DDE bene, ma poiché la tua workstation non lo è, prova a deselezionarla e vedere se funziona (probabilmente dopo un riavvio).
Andy,

Windows 7 non ha una scheda "Opzioni cartella"
Noah,

Secondo mydigitallife.info/2008/06/20/… , quella scheda è stata abbandonata in Vista. Puoi sempre farlo manualmente nel registro: cerca HKEY_CLASSES_ROOT \ .mdb per il suo valore predefinito (supponi che sia mdbfile) e poi guarda quel valore predefinito (HKEY_CLASSES_ROOT \ mdbfile \ shell \ open \ ddeexec) ...
mihi

Puoi aggiungere questo ultimo commento alla tua risposta.
Noè,

2

Ecco la soluzione che ho trovato per Access 2002. Sarà simile per altre versioni di Access.

  1. Accesso libero
  2. Fai clic su Strumenti
  3. Clicca su Opzioni
  4. Fai clic sulla scheda Avanzate
  5. Deseleziona la casella accanto a "Ignora richieste DDE"
  6. Chiudi accesso

Ha funzionato per me! Non più "Si è verificato un problema durante l'invio del comando al programma." errore.

Per le diverse versioni di Access, l'opzione "Ignora richieste DDE" potrebbe essere indicata in modo leggermente diverso, ma dovresti riuscire a trovare qualcosa di compatibile.

Spero che questo aiuti gli altri che hanno lo stesso problema.


1

Nella cartella dell'ufficio installata. fare clic con il tasto destro su Excel / Winword .exe e selezionare Proprietà. Seleziona la scheda compatibilità e assicurati che "esegui questo programma in modalità compatibilità per" sia DISATTIVATO.



1

Ecco la correzione per Access 2007:

  • Fai clic sulla "moneta" di Office nell'angolo in alto a sinistra di Access.
  • Seleziona "Opzioni di accesso"
  • Seleziona l'opzione "Avanzate"
  • Scorri fino al pulsante e deseleziona "Ignora richieste DDE"

Dovrebbe aprire bene senza dover fare confusione con il registro.


0

Qualcuno ha mai visto qualcosa del genere?

probabilmente, poiché l'errore è documentato in questo articolo di MSKB . è stato anche menzionato in relazione a ZoneAlarm.


Ho letto quegli articoli di MSKB, ma non uso affatto ZoneAlarm. È un aggiornamento Win7 alla vaniglia
Noah,

non ho una soluzione, solo sottolineando che questo errore è abbastanza comune. ma le risposte sono vaghe nella migliore delle ipotesi, sembra essere uno di quei misteri di Windows. :)

0

Registro delle attività:

Ho usato il Pannello di controllo per modificare l'installazione di Office 2007, rimuovendo Access. Quindi usando il Pannello di controllo, ho aggiunto Access indietro. Ciò non ha avuto alcun effetto sul problema.

Ho usato il Pannello di controllo per riparare l'installazione di Office 2007, quindi ho riavviato. Ciò non ha avuto alcun effetto sul problema.

NOTA:

  • Quando faccio doppio clic sul file, si verifica il problema. Quando faccio clic con il pulsante destro del mouse, scegliere OpenWith e selezionare Accesso, il problema non si verifica.
  • Questo problema non si verifica con Excel

0

Non sono sicuro ma potrebbe essere che nell'accesso questa opzione per ascoltare su DDE-Calls è disabilitata. ho visto questa opzione in Word ed eccellere anche se non ricordo l'accesso. Forse un problema di sicurezza per disabilitare meglio questo ...


0

Non uso Access, ma di recente ho iniziato a riscontrare lo stesso problema con Excel e Word (2007) su Win7 durante l'apertura di documenti dall'elenco "Recenti" nel mio menu Start (utilizzando la freccia sulla voce di menu di scelta rapida di Word). La soluzione della casella di controllo DDE non si applicava a me, poiché era già deselezionata (e non esiste in Word, per quanto ne so).

Mi sono imbattuto in una soluzione che sembra aver risolto il problema per me: quando ho aperto la finestra di dialogo Proprietà per il collegamento al documento (dal menu contestuale; vedi screenshot sotto), ho notato che il campo "Apri con" era stato in qualche modo cambiato in un'altra applicazione diversa da Microsoft Word. Facendo clic sul pulsante "Modifica" mi ha permesso di associare nuovamente questo file a "Microsoft Office Word" (senza dover fare confusione con il registro).

inserisci qui la descrizione dell'immagine


0

Se questo errore viene visualizzato quando si utilizza Office con Windows 7 con un file ADP di Access, il problema potrebbe essere dovuto a un firewall.

Windows XP con Access 2007 utilizza SMB per la comunicazione con il server MSSQL. Windows 7 con Access 2007 utilizza la porta TCP (porta SQL standard) 1433 per tentare di accedere al server MSSQL. Se si dispone di Windows Firewall o di un firewall hardware che blocca la porta 1433, tenta 3 volte di stabilire una connessione e, quando fallisce la terza volta, passa a SMB e funziona normalmente.

Aprire la porta TCP 1433 sul server che esegue SQL Server.

Non ho scoperto perché Windows 7 utilizza prima la porta TCP 1433 invece di SMB come XP, e non ho scoperto come cambiarla.


qual è la relazione per mysql in questa app word / excel? Non ho capito cosa intendi ... scusa.
Gumuruh,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.