Solucionar errores al usar varias versiones de Access en Vista o Windows 7

Hoy mi hermana y su novio me consultaron sobre un problema bastante extraño que les estaba ocurriendo al tratar de abrir una pequeña aplicación montada sobre una base de datos Access 2003. El error era bastante críptico y no daba mucha información sobre sus posibles causas. Al parecer, tenía que ver con alguna función que estaba obsoleta en la versión 2007 del gestor de bases de datos de Microsoft. Así que a investigar.

El error ocurría al tratar de usar cualquier botón o control de una forma empleada para consultar los datos. El mensaje era, literalmente:

“The expression On Current you entered as the event property setting produced the following error: Object or class does not support the set of events.”

Que, como se puede ver, no da mucha información sobre la causa real del mismo.

Sin embargo, investigando, encontré que este mensaje se genera cuando se instalan concurrentemente dos versiones diferentes de Access (en este caso, la 2003 y la 2007), porque las referencias a las librerías “Access” y “Office” se adaptan a la versión de Access que se intenta usar. Para que esto pase, es necesario tener derechos de administrador, cosa que no ocurre en Vista, porque por el esquema de seguridad impide que los programas tengan los privilegios necesarios para alterar el registro del sistema y permitir que la operación de referenciación se ejecute correctamente.

El resultado es que Access se ejecuta con la última librería que ha sido registrada, lo que causa que el código no pueda compilarse empleando una librería que no corresponde a la versión que intentamos correr, lo que causa que ningún programa pueda funcionar. Es decir, si hace referencia a la librería de la versión 2003 e intentamos ejecutar la versión 2007, el programa se “confunde” y no permite el funcionamiento del código que nos interesa.

Hay varias soluciones, sin embargo, la más segura y menos “compleja” es la siguiente (que fue la que apliqué):

1. Arrancamos el editor del registro (regedit)
2. Buscamos la siguiente clave:
HKEY_CLASSES_ROOT\TypeLib\{4AFFC9A0-5F99-101B-AF4E-00AA003F0F07}\9.0
3. Hacemos click derecho sobre la misma y seleccionamos “Permisos” o “Permissions“, según el idioma que estemos usando.
4. En la ventana que aparece, seleccionamos el grupo Users.
5. En la sección “Permissions for Users“, seleccionamos la opción “Allow” que está al lado de “Full Control“, para permitir acceso total a esta clave del registro y permitir su modificación según sea necesario.

Si nos fijamos bien, en la clave se habla de la versión 9.0, sin embargo, este número aplica igualmente para todas las versiones a partir de Access 2000.

No sobra recordar que hay que tener mucho cuidado de modificar únicamente la llave que nos interesa, para evitar dejar la máquina inservible!

Una vez realizado este cambio, cerramos el editor del registro y volvemos a intentar la ejecución del código, que esta vez debería funcionar sin problemas. Asunto resuelto!

3 comentarios

  1. Le tuto es en anglais qu and il me dise de faire une savdegarue enssuite efface le contenu de mon iphone ,je vois pas a partit de itunes comment fair pour l efface

  2. Perdona, pero yo tengo una aplicación que hice con Access 2007, cuando instale Windows 10 también puse Access 2010 y no tengo ningún problema para correr esa aplicación. Ahora bien he hecho una aplicación nueva cogiendo sobre la anterior con una aplicación y he trabado desde el principio con el Access 2010 y ahora si tengo problemas. Que explicación tiene que me ahora el error de no poder resolver esta referencia COM.
    Gracia y un saludo

Los comentarios están cerrados.