2010-08-13 5 views
0

Je travaille pour une société où nous allons probablement effectuer une mise à jour d'Access97/2003 vers Access2010.Problème de migration de MS-Access 2003 vers MS-Access 2010

Après avoir joué avec un prototype, j'ai trouvé un problème lors de l'utilisation d'Access 2010 avec des bases de données créées dans Access 2003.

Dans certaines conditions, les requêtes existantes/SQL de Access 2003 deviendra inutilisable dans Access 2010. Ici un petit exemple:

TABLENAME: Paramètres noms de champ: Numéro, valeur

une requête créée avec le designer de requêtes Access 2003:

SELECT Parameters.Value FROM [Parameters] WHERE (((Parameters.Number)=100));

Cela fonctionne bien avec Access 2003. Dans Access 2010, une erreur est générée: Erreur de syntaxe dans la clause PARAMETER

Une solution pour l'erreur est de modifier l'affichage dans Access 2003. Ici, nous débarrassons des supports :

SELECT Parameters.Value FROM [Parameters] WHERE Parameters.Number=100; 

Cela fonctionne dans Access 2010, mais la requête reste inchangeable dans le concepteur, parce que le concepteur de requêtes crée la syntaxe ci-dessus.

La raison de cette erreur est en fait l'utilisation du mot réservé 'Number', qui ne doit pas être utilisé lorsque vous commencez à construire une table ou une requête, mais pour une migration avec des centaines de bases de données existantes, il est très probable ou du moins un risque de changer la version Access sans un test complet.

Mon idée est d'écrire un petit programme qui ouvre toutes les vues existantes et les tables pour vérifier si elles fonctionnent bien. Quoi qu'il en soit, dosez quelqu'un a une meilleure solution pour cela, ou y a-t-il un outil pour vérifier la compatibilité des bases de données MS-Access 2003 avec Access 2010?

Un grand merci à l'avance

Jörg

Répondre

1

Parameters, Value et Number sont tous les mots réservés. Vous pouvez avoir raison que Number est le coupable ici; J'aurais suspecté Parameters comme plus susceptible de confondre Access dans une requête.

"Pour une migration avec des centaines de bases de données existantes", évaluez-les d'abord avec Database Issue Checker Utility d'Allen Browne. En plus de la question des mots réservés, cela vous donnera une idée des autres problèmes potentiels. Si ces problèmes seront plus gênants dans Access 2010 qu'en 2003 est une question ouverte.

Cependant, je ne vois pas une solution facile pour votre situation. Vous avez des centaines de bases de données avec peut-être des milliers de tables et de requêtes ... si elles incorporent régulièrement des mots réservés pour les noms de tables et de champs, ainsi que d'autres noms d'objets ... votre situation est misérable.

Expérimentation sur une copie d'une base de données existante. Activer "autocorrection de nom de piste" et laissez-le construire les dépendances d'objet. Modifiez les définitions de table pour éliminer les mots réservés. Ensuite, voir combien de travail supplémentaire vous avez besoin pour trouver et corriger les éléments autocorrect n'a pas fait pour vous. Mais ne laissez pas la correction automatique activée dans toute application que vous diffusez à vos utilisateurs.

+0

Merci beaucoup pour votre réponse, l'utilitaire de vérification des problèmes et le lien vers le site Web Allen Browns est certainement une aide précieuse pour faire une analyse rapide sur les bases de données existantes. L'outil s'exécute même avec des tables liées à partir de SQL Server ou Oracle. –

Questions connexes