¿Por qué Access informa que no puede recibir un comando en su programa?

9

Acabo de actualizar a Windows 7, y cuando después de reinstalar mi MS Office, tengo un error interesante. Cuando hago clic en una base de datos, aparece un mensaje emergente "Hubo un problema al enviar el comando al programa", pero la aplicación del archivo aún se iniciará y se abrirá la base de datos adecuada.

¿Alguien ha visto algo como esto?

¿Cómo haría para investigar y luego solucionar este problema?

Nota: No estoy usando Zone-Alarm. La mayoría de las búsquedas en línea sobre este problema devuelven varios sitios y artículos de MSKB que discuten problemas al usar Zone-Alarm

SOLUCIONADO: Gracias a Mihi --- Después de cambiar el nombre de la clave del Registro de ddexec a NOddeexec, el problema desapareció; todavía no estoy seguro de por qué el DDE está roto, pero ahora funciona lo suficientemente bien para mí

Noé
fuente
¿Estás haciendo clic en el archivo de la base de datos o en un acceso directo?
JohnFx
Estoy haciendo clic en el archivo de la base de datos.
Noah
¿Estás utilizando algún otro firewall?
harrymc
Solo el estándar Win-7 incluía firewall. Además, el archivo está en mi disco local en un subdirectorio de MyDocuments
Noah
¿Estás registrado como administrador? ¿Has intentado apagar UAC por completo?
harrymc

Respuestas:

2

Tenía este problema, pero solo con productos de oficina específicos (es decir, Excel y Word funcionarían, pero Access fallaba con el mensaje).

Así es como solucioné el problema en Windows 7 - 64 Bit (posiblemente funcionaría también para Vista).

NOTA: Esta solución implica editar el registro de su sistema. ¡Tenga cuidado ya que la edición incorrecta del registro podría dañar su sistema operativo!

Usando el Editor del Registro provisto con Windows 7 (Regedit)

  • Verifique la clave de extensión en el registro para la asociación actual
  • HKEY_CLASSES_ROOT\.mdb (Estaba tratando con Office 2007 pero solo localizo la entrada de extensión de archivo que le interesa) .
  • Verifique la (Default)entrada de valor, luego encuentre la clave que HKEY_CLASSES_ROOTse refiere (en mi caso, esto es Access.MDBFile) .
  • Localice la subclave shelly elimínela (consulte la advertencia anterior)
  • Regrese y localice el archivo que desea abrir, ahora se le pedirá que elija un programa para abrirlo. En este punto, ubique el programa de oficina que desea usar para abrir el archivo y listo.

Al verificar mi configuración después de hacer esto, noté que la Access.MDBFileclave en el registro había cambiado, ahora tenía una CLSIDclave que apuntaba al nuevo inicio de la asociación de archivos.

  • La subclave CLSID (en mi caso HKEY_CLASSES_ROOT\Access.MDBFile\CLSID, el (Default)valor era {73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}) .
  • Se utiliza para buscar CLSID (sin incluir las llaves) , recuerde verificar debajo de Look at-> Keysantes de realizar la búsqueda (en mi caso, la clave encontrada, HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}pero esto podría diferir, mi ejemplo es para el sistema de 64 bits que maneja una versión de 32 bits de Office 2007) .
  • Esta referencia es a la "Aplicación de Microsoft Office Access" que utiliza un servidor en proceso para iniciar la aplicación, utilizando este método reparó mis asociaciones de archivos de Access.
Lankymart
fuente
6

Básicamente, este error aparece si un tipo de archivo está configurado para usar DDE (un antiguo protocolo de comunicación estilo Windows 3.x entre aplicaciones que se ejecutan en la misma computadora) para abrir un archivo.

Lo encontrará en los tipos de archivo en las opciones de carpeta del explorador (tal vez en otro lugar de Windows 7, pero habrá un lugar donde un administrador puede configurar qué archivos abrir con qué programas).

Cuando se marca la opción "Usar DDE", Windows primero verificará si el programa ya se está ejecutando y luego (si lo hace) le enviará un mensaje DDE (que consta de 3 textos, "Aplicación", "Tema" y "Mensaje" ) De esta forma, puede evitar abrir el programa nuevamente, incluso si ya se está ejecutando. Cuando el programa no se está ejecutando, solo se inicia normalmente. En caso de que falle la conexión DDE, aparecerá el cuadro de diálogo que menciona y simplemente iniciará el programa nuevamente normalmente.

Por lo tanto, la solución más fácil es simplemente deshabilitar "Usar DDE" para la extensión de archivo de su base de datos (supongo .mdb). El único inconveniente de esto: cuando abre una base de datos y Access ya se está ejecutando, Windows abrirá una segunda instancia de Access, que a su vez notará la primera y enviará el mensaje DDE y saldrá después de eso. I. e. está iniciando Access innecesariamente para que pueda cerrarse nuevamente de una vez. Pero hoy en día con CPU rápidas y discos duros, supongo que esto es aceptable :-)

La solución más compleja sería verificar si algo está mal en esta configuración (como un tema incorrecto o una aplicación incorrecta) y solucionarlo. Hacer eso requeriría tener acceso a otra máquina (tal vez virtual) donde funcionan los archivos de apertura para que pueda comparar la configuración DDE.

EDITAR: Según este sitio web , esa pestaña se eliminó en Vista. Siempre puede hacerlo manualmente en el registro: busque HKEY_CLASSES_ROOT\.mdbsu valor predeterminado (digamos que es mdbfile) y luego mire ese valor predeterminado ( HKEY_CLASSES_ROOT\mdbfile\shell\open\ddeexec).

mihi
fuente
Tengo acceso a otra máquina que funciona. ¿Dónde buscaría comparar la configuración DDE?
Noah
@Noah: en el Explorador de Windows, vaya a Herramientas -> Opciones de carpeta. Haga clic en la pestaña Tipos de archivo. Encuentra el tipo de archivo mdb. Selecciona Avanzado. Haga clic en la acción "Abrir" y seleccione "Editar ...". Tenga en cuenta que si está comparando esto con otra estación de trabajo, la otra estación de trabajo podría estar usando DDE bien, pero como su estación de trabajo no lo está, intente desmarcarla y ver si eso funciona (posiblemente después de un reinicio).
Andy
Windows 7 no tiene una pestaña "Opciones de carpeta"
Noah
Según mydigitallife.info/2008/06/20/… , esa pestaña se eliminó en Vista. Siempre puede hacerlo manualmente en el registro: busque HKEY_CLASSES_ROOT \ .mdb para ver su valor predeterminado (digamos que es mdbfile) y luego busque ese valor predeterminado (HKEY_CLASSES_ROOT \ mdbfile \ shell \ open \ ddeexec) ...
mihi
¿Puedes agregar este último comentario a tu respuesta?
Noah
2

Aquí está la solución que encontré para Access 2002. Será similar para otras versiones de Access.

  1. Acceso abierto
  2. Haga clic en herramientas
  3. Haga clic en Opciones
  4. Haga clic en la pestaña Avanzado
  5. Desmarca la casilla junto a "Ignorar solicitudes DDE"
  6. Cerrar acceso

¡Funcionó para mí! No más "Hubo un problema al enviar el comando al programa". error.

Para las diferentes versiones de Access, la opción "Ignorar las solicitudes de DDE" puede establecerse de manera un poco diferente, pero debería poder encontrar algo que sea competitivo.

Espero que esto ayude a otros que tienen el mismo problema.

Robert Valentine
fuente
1

En la carpeta de oficina instalada. haga clic derecho en excel / winword .exe y seleccione propiedades. Seleccione la pestaña de compatibilidad y asegúrese de que "ejecutar este programa en modo de compatibilidad para" no esté marcado.

Mick
fuente
1

Aquí está la solución para Access 2007:

  • Haga clic en la "Moneda" de Office en la esquina superior izquierda de Access.
  • Seleccione "Opciones de acceso"
  • Seleccione la opción "Avanzado"
  • Desplácese hasta el botón y desactive la casilla "Ignorar solicitudes DDE"

Debería abrir bien sin tener que meterse con el registro.

Jam88
fuente
0

¿Alguien ha visto algo como esto?

probablemente, ya que el error está documentado en este artículo de MSKB . También se ha mencionado en relación con ZoneAlarm.


fuente
Leí esos artículos de MSKB, pero no uso ZoneAlarm en absoluto. Es una actualización de Win7 de Vanilla
Noah
No tengo una solución, solo señalo que este error es bastante común. pero las respuestas son vagas en el mejor de los casos, parece ser uno de esos misterios de Windows. :)
0

Registro de actividades:

Utilicé el Panel de control para cambiar la instalación de Office 2007, eliminando Access. Luego, usando el Panel de control, agregué Access de nuevo. Esto no tuvo ningún efecto sobre el problema.

Utilicé el Panel de control para reparar la instalación de Office 2007, luego reinicié. Esto no tuvo ningún efecto sobre el problema.

NOTA:

  • Cuando hago doble clic en el archivo, se produce el problema. Cuando hago clic derecho, elijo OpenWith y selecciono Access, el problema no ocurre.
  • Este problema no ocurre con Excel
Noé
fuente
0

No estoy seguro, pero podría ser que al acceder esta opción para escuchar en las llamadas DDE esté deshabilitada. Vi esta opción en Word y Excel también, pero no recuerdo el acceso. Tal vez un problema de seguridad para deshabilitar esto mejor ...

Hielo
fuente
0

No uso Access, pero recientemente comencé a encontrar el mismo problema con Excel y Word (2007) en Win7 al abrir documentos de la lista "Reciente" en mi menú Inicio (usando la flecha en el elemento del menú de acceso directo de Word). La solución de casilla de verificación DDE no se aplicaba a mí, ya que estaba desmarcada (y no existe en Word, que yo sepa).

Me topé con una solución que parece haber solucionado el problema para mí: cuando abrí el cuadro de diálogo Propiedades para el acceso directo del documento (desde el menú contextual; vea la captura de pantalla a continuación), noté que el campo "Se abre con" había cambiado de alguna manera a otra aplicación que no sea Microsoft Word. Al hacer clic en el botón "Cambiar" me permitió volver a asociar este archivo con "Microsoft Office Word" (sin tener que meterse con el registro).

ingrese la descripción de la imagen aquí

kmote
fuente
0

Si este error aparece al usar Office con Windows 7 con un archivo ADP de Access, el problema puede deberse a un firewall.

Windows XP con Access 2007 usa SMB para la comunicación con el servidor MSSQL. Windows 7 con Access 2007 usa el puerto TCP (puerto SQL estándar) 1433 para intentar acceder al servidor MSSQL. Si tiene un Firewall de Windows o un firewall de hardware que bloquea el puerto 1433, intenta 3 veces establecer una conexión y cuando falla la tercera vez, cambia a SMB y funciona normalmente.

Abra el puerto TCP 1433 en el servidor que ejecuta SQL Server.

No he descubierto por qué Windows 7 usa el puerto TCP 1433 primero en lugar de SMB como XP, y no he descubierto cómo cambiarlo.

Mike B
fuente
¿Cuál es la relación para el MySQL en esta aplicación Word / Excel de todos modos? No entendí lo que quieres decir ... lo siento.
gumuruh