2008-09-16 9 views
1

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

Y a-t-il un cours 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 s'exécute comporte à la fois les versions 2003 et 2007. Le problème semblerait également provenir de la référence de la "Bibliothèque d'objets Microsoft Access 12.0" (ou de la "Bibliothèque d'objets Microsoft Access 11.0" en 2003). Pour le voir, regardez simplement le menu Tools: Refrences sur l'écran VBA.

Le symptôme de l'erreur est fondamentalement le code ne pas être reconnu (presque comme il ne reconnaît pas le langage de programmation que j'utilise). Il suit généralement ceci avec une boîte qui indique que "l'expression sur le chargement que vous avez entrée comme les paramètres de propriété d'événement a produit l'erreur suivante: l'objet ou la classe ne soutient pas l'ensemble d'événements". Vous pouvez également remplacer "En charge" avec "Sur clic" pour les boutons ou "Sur changement" pour les zones de texte.

Je soupçonne personnellement que l'ordinateur prend des parties de la bibliothèque d'objets Microsoft Access 11.0/12.0, puis les mélange dans une référence VBA inutile. Ce qui confirme encore mes soupçons, c'est la boîte qui apparaît entre les deux qui dit «Configuration de Microsoft Access». Un autre problème qui confirme encore mes soupçons est qu'il fonctionnera sur celui qui est ouvert en premier (2007, par exemple) et ensuite pas exécuté sur l'autre (2003 continue l'exemple)

Le seul autre problème est que j'ai dû corriger était en train de changer la dernière partie de DoCmd.OpenForm ,,,,, acFormReadOnly (ou acReadOnly, en fonction de la façon dont la machine semble se sentir ce jour-là - oui cela fonctionnerait avec un, un jour et ensuite je veux en changer un autre) pour simplement verrouiller les zones de texte individuelles

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

Espérons que cela suffise pour que quelqu'un trouve quelque chose.

Répondre

1

Microsoft officiel position est que l'installation de plusieurs versions de bureau sur le même PC n'est pas supportée et n'est pas recommandée, et 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 - Fractionnement du db en arrière et extrémité avant. Placez l'extrémité arrière (tables et relations) dans un dossier réseau et placez une copie du frontal (tous les autres objets) sur le bureau de chaque utilisateur.

2 - Il est préférable de faire de l'interface frontale un mde pour éviter que les références ne soient mélangées 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 rappelez-vous d'utiliser le raccourci!) Dans la cible du raccourci:

« chemin pour accéder 12 msaccess.exe » « chemin de db.mdb »

+0

Ahhh, maintenant c'est progrès. Probablement pas utiliser réellement, mais la prochaine fois (ha, la prochaine fois ... il ne sera probablement pas une prochaine fois) je construis une base de données, je vais regarder dans ce domaine. –

0

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

À ma connaissance, non les objets majeurs, les propriétés ou les méthodes disponibles dans Office 2003/VBA ont été abandonnés dans Office 2007. Le code Office 2003 sera ensuite exécuté avec Access 2007 une fois que ces problèmes de références auront été résolus. Certains nouveaux objets ont été introduits dans Office 2007, donc je ne conseillerais à aucun développeur de l'utiliser pour développer du code à utiliser avec Access 2003.

Mais le principal problème de votre question est: pourquoi devrait-on exécuter les deux accès? versions sur le même ordinateur? C'est ce que je ferais si je voulais m'assurer de planter mes applications. Je pense que si vos objectifs étaient de développer des logiciels, vous devriez certainement trouver une meilleure configuration pour votre machine!

+0

lol, oui, je suppose que je ne wnat pour le faire planter , mais c'est parce que j'essaie de le faire fonctionner. Comme mon ami a dit "leur dire que cela ne fonctionne que dans la version _______" problème résolu je suppose –

0

En général, l'installation de plusieurs versions d'Access sur une machine n'est pas prise en charge et entraîne des problèmes avec les références d'objet.

Si la base de données est créée dans Access 2003, compilée en.MDE, puis déployé sur une instance Windows distincte exécutant Access 2007, vous ne devriez pas avoir de problèmes significatifs (autres que les modifications de l'interface utilisateur telles que les barres d'outils personnalisées lancées dans le ruban des compléments).

Pour tester plusieurs versions d'Access, vous aurez besoin d'une certaine forme d'isolation entre chaque version. J'utilise plusieurs machines virtuelles pour accomplir cela. Mes débits Windows VM principaux Office 2007 et IE7 et moi-même avons une deuxième machine virtuelle qui a Office 2003 et IE6 pour les tests.

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

+0

hmm, semble bien, mais il semble que cela ne s'applique pas à moi en particulier. Pourrait aider quelqu'un d'autre bien. Oh oui et première réponse! (scission délibérée de FirstBlood) –

Questions connexes