Quelles sont les implications de l’exécution d’une base de données Microsoft Access en 2003 et 2007?

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

  •  09-06-2019
  •  | 
  •  

Question

Quelles sont les implications de l’exécution d’une base de données Microsoft Access en 2003 et 2007?

Y a-t-il une classe que j'ai oublié de suivre?

Le programme a été initialement créé dans Office 2003, puis exécuté en 2007. Des problèmes semblent se produire lorsque la machine sur laquelle il est exécuté contient les versions 2003 et 2007. Le problème semble également provenir d'une référence à la "Bibliothèque d'objets Microsoft Access 12.0". (ou la "Bibliothèque d'objets Microsoft Access 11.0" en 2003). Pour voir cela, il suffit de regarder le menu Tools: Refrences sur l’écran VBA.

Le symptôme de l'erreur est essentiellement le fait que le code ne soit pas reconnu (presque comme s'il ne reconnaissait pas le langage de programmation que j'utilise). Il s'ensuit généralement une boîte indiquant "L'expression à charger que vous avez entrée comme paramètres de propriété d'événement a généré l'erreur suivante: L'objet ou la classe ne prend pas en charge l'ensemble des événements". Vous pouvez également remplacer & # 8220; On Load & # 8221; avec & # 8220; On Click & # 8221; pour les boutons ou & # 8220; On Change & # 8221; pour les zones de texte.

Personnellement, je soupçonne l'ordinateur de prendre des parties de la bibliothèque d'objets Microsoft Access 11.0 / 12.0, puis de les mélanger dans une référence VBA inutile. Ce qui confirme encore mes soupçons, c’est la boîte de dialogue "Configuration de Microsoft Access" qui apparaît entre les deux. Un autre problème qui confirme encore plus mes soupçons est qu’il s’appliquera sur celui qui est ouvert en premier (2007, par exemple) puis non exécuté sur l’autre (2003, en reprenant l’exemple)

Le seul autre problème que j'ai à résoudre est de changer la dernière partie de DoCmd.OpenForm ,,,,, acFormReadOnly (ou acReadOnly, selon ce que la machine semble ressentir ce jour-là - oui, cela fonctionnerait avec un, un jour et puis je veux changer un autre) pour verrouiller simplement les zones de texte individuelles

Peut-être que ce n'est pas tout à fait le codage, mais je pense qu'il pourrait être corrigé par le codage.

J'espère que cela suffit pour que quelqu'un puisse proposer quelque chose.

Était-ce utile?

La solution

La position officielle de Microsoft est que l'installation de plusieurs versions Office sur le même ordinateur n'est ni prise en charge ni recommandée. Access 2007 semble être conçu pour nous le prouver!

Cela dit, vous pouvez éviter la plupart des problèmes en procédant comme suit:

1 - Séparer la base de données en deux parties: l’arrière et l’avant. Placez le serveur (tables et relations) dans un dossier réseau, puis placez une copie du serveur (tous les autres objets) sur le bureau de chaque utilisateur.

2 - Il est préférable de transformer le front-end en mde pour éviter les références aléatoires à chaque fois que vous ouvrez la base de données dans l'autre version d'Access.

3 - Créez un raccourci pour ouvrir le frontal avec la version souhaitée d'Access afin qu'il soit toujours ouvert avec cette version. (Et n'oubliez pas d'utiliser le raccourci!) Dans la cible du raccourci:

"chemin d'accès à Access 12 msaccess.exe" "chemin d'accès à db.mdb"

Autres conseils

Nous avons une application MS-Acces, développée avec Access 2003 et utilisée dans les versions complète ou d'exécution d'Access 2003 et Access 2007 (Access 2007 Runtime étant gratuit, nous en faisons un excellent usage!). Il n'y a pas de problème particulier à l'exception de la gestion des références. Notre code analyse la version Office installée sur l'ordinateur et met à jour automatiquement les références correspondantes (non seulement Access, mais également Excel, Outlook, Word, etc.: le code est très délicat mais d'un grand intérêt!)

À ma connaissance, aucun objet, propriété ou méthode majeur disponible dans Office 2003 / VBA n'était obsolète dans Office 2007. Le code Office 2003 sera ensuite exécuté avec Access 2007 une fois ces problèmes résolus. Certains nouveaux objets ont été introduits dans Office 2007 et je ne conseillerais donc pas aux développeurs de les utiliser pour développer du code à utiliser ultérieurement avec Access 2003.

Mais le principal & amp; Le vrai problème de votre question est de savoir pourquoi on devrait exécuter les deux versions d’Access sur le même ordinateur. C'est ce que je ferais si je voulais m'assurer de bloquer mes applications. Je pense que si vos objectifs étaient de développer des logiciels, vous devriez certainement trouver une meilleure configuration pour votre machine!

En général, l'installation de plusieurs versions d'Access sur la même machine n'est pas prise en charge et entraînera les problèmes que vous rencontrez avec les références d'objet.

Si la base de données est créée dans Access 2003, compilée en un fichier .MDE, puis déployée sur une instance Windows distincte exécutant Access 2007, vous ne devriez pas rencontrer de problèmes importants Ruban des compléments).

Pour tester plusieurs versions d'Access, vous aurez besoin d'une forme d'isolement entre chaque version. J'utilise plusieurs machines virtuelles pour accomplir cela. Mes machines virtuelles Windows principales, Office 2007 et IE7, et moi avons une deuxième machine virtuelle avec Office 2003 et IE6 à tester.

Notez que si vous souhaitez simplement utiliser Word, Excel et Outlook 2007 avec Access 2003, vous pouvez d'abord installer Access 2003 lui-même, puis effectuer une installation personnalisée d'Office 2007 et désélectionner Access 2007.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top