¿Cuáles son las implicaciones de ejecutar una base de datos de acceso de Microsoft tanto en 2003 como en 2007?

StackOverflow https://stackoverflow.com/questions/75246

  •  09-06-2019
  •  | 
  •  

Pregunta

¿Cuáles son las implicaciones de ejecutar una base de datos de Microsoft Access tanto en 2003 como en 2007?

¿Hay alguna clase que olvidé tomar?

El programa se creó originalmente en Office 2003 y luego se ejecutó en 2007.Parece que ocurren problemas cuando la máquina en la que se ejecuta tiene 2003 y 2007.El problema también parece surgir de una referencia de la "Biblioteca de objetos de Microsoft Access 12.0" (o la "Biblioteca de objetos de Microsoft Access 11.0" en 2003).Para ver esto, basta con mirar las Herramientas:Menú de referencias en la pantalla VBA.

El síntoma del error es básicamente que no se reconoce el código (casi como si no reconociera el lenguaje de programación que estoy usando).Por lo general, sigue a esto con un cuadro que dice "La expresión Al cargar que ingresó como configuración de propiedad del evento produjo el siguiente error:Objeto o clase no soporta el conjunto de eventos".También puede reemplazar "Al cargar" con "Al hacer clic" para los botones o "Al cambiar" para los cuadros de texto.

Personalmente sospecho que la computadora está tomando partes de la biblioteca de objetos de Microsoft Access 11.0/12.0 y luego las mezcla en una referencia de VBA inútil.Lo que confirma aún más mi sospecha es el cuadro que aparece al pasar entre los dos que dice "Configurando Microsoft Access". Otro problema que confirma aún más mi sospecha es que se ejecutará en el que se abra primero (2007, por ejemplo) y luego no se ejecuta en el otro (2003 continuando con el ejemplo)

El único otro problema que tuve que solucionar fue cambiar la última parte de DoCmd.OpenForm, acFormReadOnly (o acReadOnly, dependiendo de cómo parezca sentirse la máquina ese día en particular; sí, funcionaría con uno). un día y luego quieres que lo cambie a otro) a simplemente bloquear los cuadros de texto individuales

Tal vez no sea del todo codificación, pero creo que podría solucionarse mediante codificación.

Con suerte, eso será suficiente para que a alguien se le ocurra algo.

¿Fue útil?

Solución

La posición oficial de Microsoft es que no se admite ni se recomienda instalar múltiples versiones de Office en la misma PC, ¡y Access 2007 parece estar diseñado para demostrárnoslo!

Dicho esto, puedes evitar la mayoría de los problemas haciendo lo siguiente:

1 - Dividir la base de datos en un back-end y un front-end.Coloque el back-end (tablas y relaciones) en una carpeta de red y coloque una copia del front-end (todos los demás objetos) en el escritorio de cada usuario.

2 - Es mejor hacer que la interfaz sea un mde para evitar que las referencias se mezclen cada vez que abres la base de datos en la otra versión de Access.

3 - Cree un acceso directo para abrir la interfaz con la versión deseada de Access para que sea siempre abierto con esa versión.(¡Y recuerda usar el atajo!) En el destino del atajo:

"ruta a Access 12 msaccess.exe" "ruta a db.mdb"

Otros consejos

Tenemos una aplicación MS-Acces, desarrollada con Access 2003 y utilizada en la versión completa o en tiempo de ejecución de Access 2003 y Access 2007 (como Access 2007 Runtime es gratuito, ¡le estamos dando un gran uso!).No hay ningún problema particular excepto la gestión de referencias.Nuestro código analiza la versión de Office instalada en el ordenador y actualiza automáticamente las referencias correspondientes (no sólo Access sino también Excel, Outlook, Word, etc.:¡El código es muy complicado pero de gran interés!)

Hasta donde yo sé, ningún objeto, propiedad o método importante disponible en Office 2003/VBA quedó obsoleto en Office 2007.El código de Office 2003 se ejecutará con Access 2007 una vez que se resuelvan estos problemas de referencias.Se introdujeron algunos objetos nuevos en Office 2007, por lo que no recomendaría a ningún desarrollador que los utilice para desarrollar código que se utilizará posteriormente con Access 2003.

Pero el problema principal y real de su pregunta es:¿Por qué deberíamos ejecutar ambas versiones de Access en la misma computadora?Esto es lo que haría si quiero asegurarme de bloquear mis aplicaciones.Creo que si tus objetivos fueran desarrollar software, ¡definitivamente deberías encontrar una mejor configuración para tu máquina!

En general, tener varias versiones de Access instaladas en una máquina no es compatible y provocará los problemas que está viendo con las referencias de objetos.

Si la base de datos se creó en Access 2003, se compiló en un archivo .MDE y luego se implementó en una instancia separada de Windows que ejecuta Access 2007, no debería tener ningún problema importante (aparte de los cambios en la interfaz de usuario, como barras de herramientas personalizadas que se incluyen en los complementos). cinta).

Para realizar pruebas en varias versiones de Access, necesitará algún tipo de aislamiento entre cada versión.Utilizo varias máquinas virtuales para lograr esto.Mi máquina virtual principal de Windows ejecuta Office 2007 e IE7 y tengo una segunda máquina virtual que tiene Office 2003 e IE6 para realizar pruebas.

Tenga en cuenta que si simplemente desea utilizar Word, Excel y Outlook 2007 con Access 2003, puede instalar Access 2003 primero por sí solo y luego realizar una instalación personalizada de Office 2007 y anular la selección de Access 2007.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top