Avertissement : vous affichez cette page avec un navigateur Web non pris en charge. Ce site Web fonctionne de manière optimale avec Microsoft Internet Explorer 6.0 ou version ultérieure, Firefox 1.5 ou Netscape Navigator 8.0 ou version ultérieure. En savoir plus sur les navigateurs pris en charge.
Résolution des problèmes liés à la conversion d'un fichier Access
Vous pouvez convertir sans difficulté la plupart des fichiers Microsoft Access (fichier Microsoft Access : fichier de base de données Access ou de projet Access. Une base de données Access stocke des objets de base de données et des données dans un fichier .mdb. Un fichier de projet ne contient aucune donnée et est utilisé pour établir une connexion à une base de données Microsoft SQL Server.) des versions précédentes au format Access 2000 ou Access 2002 - 2003. Toutefois, de nouvelles fonctionnalités peuvent parfois entrer en conflit avec des objets et du code existants. Résolution des problèmes liés à une base de données Access d'une version précédente au format de fichier Access 2000 ou Access 2002 -2003
Je reçois un message indiquant que des erreurs de compilation se sont produites lors de la conversion ou de l'activation de la base de données.
Lorsque vous convertissez une base de données Microsoft Access version 2.0 au format de fichier Access 2000 ou Access 2002 -2003, l'utilitaire de conversion convertit le code Access Basic en code Visual Basic pour Applications (VBA). Si du code ne se compile pas correctement, vous recevrez peut-être un message d'erreur après avoir converti la base de données Access.
Dans la base de données Access convertie, ouvrez un module en mode Création et cliquez sur Compiler <Nom du projet> dans le menu Débogage. Pendant qu'Access exécute la compilation, il s'arrête à chaque ligne de code contenant une erreur. Vous pouvez ensuite modifier la syntaxe pour résoudre l'erreur de compilation.
-
Dans de rares cas, il se peut que l'utilitaire de conversion ne convertisse pas certaines syntaxes. Par exemple, la modification d'une instruction DoCmd en une méthode DoCmd peut échouer. Vous pouvez également recevoir des messages d'erreur de compilation si votre base de données Microsoft Access version 2.0 contient des erreurs de syntaxe. C'est pourquoi, il est conseillé de compiler tous vos modules de base de données de versions précédentes avant de les convertir.
-
Microsoft Access 2000 ou ultérieur ne prend pas en charge la bibliothèque de compatibilité DAO (DAO (Data Access Objects) : interface d'accès aux données qui communique avec Microsoft Jet et des sources de données compatibles ODBC pour se connecter à, récupérer, manipuler et mettre à jour des données et la structure de base de données.) 2.5/3.x. Si vous essayez de convertir une base de données dont le code contient des versions antérieures d'objets, méthodes et propriétés DAO qui dépendent de la bibliothèque de compatibilité DAO 2.5/3.x, vous recevez un message indiquant des erreurs de compilation au cours de la conversion de la base de données. Avant de convertir la base de données, mettez à jour le code pour qu'il ne dépende pas de la bibliothèque de compatibilité DAO 2.5/3.x. Si vous recevez toujours un message indiquant que des erreurs de compilation se sont produites lors de la conversion, utilisez la procédure suivante pour corriger les références.
- Ouvrez la base de données Access convertie en Access 2002 ou version ultérieure.
- Ouvrez un module (module : collection de déclarations, d'instructions et de procédures stockées ensemble ou en tant qu'unité nommée. Il existe deux types de modules : les modules standard et les modules de classe.) dans la base de données.
- Dans le menu Outils,cliquez sur Références.
- Dans la zone Références disponibles, activez les cases à cocher en regard des références manquantes à la bibliothèque de compatibilité DAO 2.5/3.x.
- Activez la case à cocher en regard de la bibliothèque d'objets Microsoft DAO 3.6.
- Microsoft Access 97 ou version ultérieure prenant en charge certains nouveaux mots clés Visual Basic, vous ne pouvez plus utiliser ces mots clés comme des identificateurs. Ces mots clés sont les suivants : AddressOf, Decimal, DefDec, Enum, Event, Friend, Implements, RaiseEvent, WithEvents. Lorsque vous convertissez une base de données Access d'une version précédente au format de fichier Access 2000 ou Access 2002 - 2003, les identificateurs existants identiques à un nouveau mot clé Visual Basic engendrent une erreur de compilation. Pour résoudre ce problème, modifiez les identificateurs existants pour qu'ils ne soient pas des mots clés.
- Dans Access version 2.0, vous pourriez spécifier un nom pour une procédure (procédure : séquence de déclarations et d'instructions d'un module qui sont exécutées en bloc. Les procédures de Visual Basic incluent les deux procédures Sub et Function.) Visual Basic identique à un nom de module. Toutefois, dans Microsoft Access 95 ou version ultérieure, une procédure et un module ne peuvent pas porter le même nom. Pour résoudre ce problème, renommez la procédure ou le module. Vous pouvez également éviter cette erreur en utilisant un nom complet pour la procédure dans votre code Visual Basic pour Applications (VBA).
- Lorsque vous convertissez une base de données Access version 2.0 en Access 2000 ou version ultérieure, le code dans le nouveau fichier est contenu dans un projet Visual Basic pour Applications. Par défaut, le nom du projet VBA est identique à celui du fichier Access. Le nom du projet VBA est également un mot réservé dans Visual Basic. Si un module ou une procédure porte le même nom que le projet VBA, vous recevez un message indiquant que des erreurs de compilation se sont produites lors de la conversion.
Je reçois le message « Mémoire insuffisante » ou « Impossible de créer plus de modules de classe »lors de la conversion d'une grande base de données.
Un fichier au format Microsoft Access 2000 ou Access 2002 - 2003 est limité à 1 000 modules (module : collection de déclarations, d'instructions et de procédures stockées ensemble ou en tant qu'unité nommée. Il existe deux types de modules : les modules standard et les modules de classe.), tandis qu'une base de données Access 97 est limitée à 1 024 modules. Le nombre de modules dans un fichier Microsoft Access inclut des formulaires et des états dont la valeur de la propriété AvecModule est Oui. Pour résoudre ce problème de mémoire, réduisez le nombre d'objets (objets de base de données : une base de données Access contient des objets tels que des tables, des requêtes, des formulaires, des états, des pages, des macros et des modules. Un projet Access contient des objets tels que des formulaires, des états, des pages, des macros et des modules.) dans votre base de données Access. Envisagez de diviser votre application en plusieurs bases de données. Si vous possédez des modules avec une grande quantité de code, envisagez d'utiliser des bases de données de bibliothèque (base de données bibliothèque : collection de procédures et d'objets de base de données que vous pouvez appeler à partir de n'importe quelle application. Pour utiliser les éléments de la bibliothèque, vous devez au préalable établir une référence de la base de données en cours vers la base de données bibliothèque.) pour stocker le code.
Je souhaite afficher un journal des erreurs de conversion.
Si Microsoft Access rencontre des erreurs lors de la conversion d'un fichier Access (fichier Microsoft Access : fichier de base de données Access ou de projet Access. Une base de données Access stocke des objets de base de données et des données dans un fichier .mdb. Un fichier de projet ne contient aucune donnée et est utilisé pour établir une connexion à une base de données Microsoft SQL Server.), vous pouvez afficher un résumé de ces erreurs en ouvrant la table Erreurs de conversion dans le nouveau fichier Access. Elle contient les colonnes suivantes :
Type objet Type d'objet de base de données (objets de base de données : une base de données Access contient des objets tels que des tables, des requêtes, des formulaires, des états, des pages, des macros et des modules. Un projet Access contient des objets tels que des formulaires, des états, des pages, des macros et des modules.) dans lequel Access a rencontré une erreur ou « Base de données » si Access a rencontré une erreur qui n'est pas spécifique à un type d'objet particulier.
Nom objet Nom de l'objet dans lequel Access a rencontré une erreur. Si Access a rencontré une erreur de compilation pendant la conversion, le nom du module qui contient l'erreur n'est pas spécifié.
Description de l'erreur Si nécessaire, appuyez sur Maj+F2 pour afficher la description de l'erreur dans son intégralité.
Je ne peux pas convertir mon fichier Access à l'aide de la commande Convertir une base de données/un projet.
Si vous ne parvenez pas à convertir votre fichier Microsoft Access en pointant sur Utilitaires de base de données dans le menu Outils, puis en cliquant sur la commande Convertir une base de données/un projet, utilisez la procédure suivante.
-
Dans Access 2002 ou version ultérieure, cliquez sur Nouveau dans le menu Fichier et créez une nouvelle base de données Access (base de données Microsoft Access : collection de données et d'objets (tels que des tables, des requêtes ou des formulaires) qui est associée à une rubrique ou un objectif donné. Le moteur de base de données Microsoft Jet gère les données.) ou un nouveau projet Access (projet Microsoft Access : fichier Access qui établit une connexion à une base de données Microsoft SQL Server et qui sert à créer des applications client-serveur. Un fichier de projet ne contient aucune données ni aucun objet basé sur la création de données telles que des tables ou des vues.).
-
Dans le menu Fichier, pointez sur Données externes, puis cliquez sur Importer.
-
Dans la boîte de dialogue Importer, sélectionnez le fichier Access à convertir.
-
Dans la boîte de dialogue Importer des objets, sélectionnez les objets de base de données (objets de base de données : une base de données Access contient des objets tels que des tables, des requêtes, des formulaires, des états, des pages, des macros et des modules. Un projet Access contient des objets tels que des formulaires, des états, des pages, des macros et des modules.) à importer. Si le nouveau fichier Access est un projet Access connecté à une base de données Microsoft SQL Server, importez uniquement les formulaires, états, pages, macros et modules.
Remarque Lorsque vous convertissez un fichier Access à l'aide de cette méthode, vous devrez peut-être définir des références en ouvrant un module en mode Création, en cliquant sur Références dans le menu Outils, puis en activant les cases à cocher en regard des références définies dans le fichier Access de la version précédente.
La correction automatique de nom ne fonctionne pas dans une base de données Access convertie.
La correction automatique de nom (correction automatique de nom : fonctionnalité qui rectifie automatiquement les erreurs courantes qui se produisent lorsque vous renommez des formulaires, états, tables, requêtes ou champs, ou des contrôles se trouvant dans des formulaires ou des états. Cette fonctionnalité ne peut toutefois pas corriger toutes les références à des objets renommés.) est activée par défaut dans les bases de données qui ont été créées avec Microsoft Access 2000 ou version ultérieure. Pour activer la correction automatique de nom dans une base de données Microsoft Access (base de données Microsoft Access : collection de données et d'objets (tels que des tables, des requêtes ou des formulaires) qui est associée à une rubrique ou un objectif donné. Le moteur de base de données Microsoft Jet gère les données.) convertie, procédez comme suit :
- Dans le menu Outils, cliquez sur Options, puis cliquez sur l'onglet Général.
- Activez les cases à cocher Suivi informations correction automatiques et Effectuer correction automatique de nom.
Si vous voulez obtenir un journal des modifications apportées par Access à la base de données quand il répare les erreurs de nommage, activez également la case à cocher Historique corrections automatiques.
- Ouvrez chaque table, requête, formulaire et état en mode Création (mode Création : fenêtre qui présente la création des objets de base de données suivants : tables, requêtes, formulaires, états, macros et pages d'accès aux données. En mode Création, vous pouvez créer de nouveaux objets de base de données et modifier la structure d'objets existants.), enregistrez-le et fermez-le.
Les données présentes dans une base de données Access convertie dont la langue n'est pas l'anglais sont illisibles.
Lorsque vous convertissez une base de données Microsoft Access (base de données Microsoft Access : collection de données et d'objets (tels que des tables, des requêtes ou des formulaires) qui est associée à une rubrique ou un objectif donné. Le moteur de base de données Microsoft Jet gère les données.) à partir d'Access 97 ou version antérieure au format Access 2000 ou Access 2002 - 2003, Access utilise l'ordre de tri pour déterminer la page de code (page de codes : tableau qui met en relation les codes de caractères binaires utilisés par un programme avec les touches du clavier ou avec l'aspect des caractères à l'écran. Les pages de code constituent un moyen de prendre en charge les langues de différents pays.) à utiliser lors de la conversion des données en Unicode (Unicode : norme de codage de texte développée par le consortium Unicode. Comme il utilise plus d'un octet pour représenter chaque caractère, le code Unicode permet de représenter presque toutes les langues écrites du monde en utilisant un même jeu de caractères.). Access 2000 ou version ultérieure associe l'ordre de tri Général à la page de code d'Europe Occidentale. C'est pourquoi, si vous avez utilisé la base de données Access d'une version précédente avec un système d'exploitation autre que l'anglais et que vous l'avez enregistrée avec l'ordre de tri Général, utilisez l'une des procédures suivantes.
-
Si la langue de votre système d'exploitation est identique à celle de la base de données ou si votre système d'exploitation prend en charge cette langue, utilisez la procédure suivante.
-
Ouvrez la base de données dans la version précédente autre que l'anglais d'Access.
-
Modifiez l'ordre de tri pour le faire correspondre à la langue du système d'exploitation. Pour plus d'informations sur la façon de modifier l'ordre de tri dans cette version d'Access, effectuez une recherche dans l'aide d'Access.
-
Compactez la base de données.
-
Dans Access 2002 ou version ultérieure, convertissez la base de données.
-
Si la langue de votre système d'exploitation est différente de celle de la base de données, si votre système d'exploitation ne prend pas en charge cette langue ou si la langue ne dispose pas d'ordre de tri dans la version précédente d'Access, utilisez la procédure suivante.
Vous devrez peut-être utiliser cette procédure si la base de données Access que vous souhaitez convertir a été créée avec un système d'exploitation dont la langue est le vietnamien, le farsi ou ou une langue baltique (estonien, letton ou lituanien).
-
Exécutez l'une des actions suivantes :
-
Si vous convertissez une base de données Access 2.0, repérez la sous-clé suivante dans le Registre Windows :
HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engines\Jet 2.x
-
Si vous convertissez une base de données Access 95 ou 97, repérez la sous-clé suivante dans le Registre Windows :
HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engines\Jet 3.x
-
Dans la sous-clé Jet 2.x ou Jet 3.x, créez une nouvelle entrée intitulée ForceCP et effectuez l'une des actions suivantes :
-
Définissez la valeur de l'entrée « ANSI » afin de spécifier la page de code par défaut de l'ordinateur.
-
Spécifiez le numéro de page de code de la langue de votre choix. Par exemple, indiquez « 1257 » pour Windows Baltique Rim.
-
Démarrez Access 2002 ou version ultérieure et convertissez la base de données.
-
Supprimez l'entrée de registre ForceCP pour indiquer à Access d'utiliser l'ordre de tri de la base de données pour déterminer la page de code.
Résolution d'autres problèmes liés à la conversion d'une base de données Access version 2.0 au format de fichier Access 2000 ou Access 2002 - 2003
Les appels API 16 bits ne sont pas convertis.
Si une version Microsoft Access ou un module 2.0 contient des appels API 16 bits, vous recevrez peut-être un message d'erreur lors de la conversion de la base de données au format de fichier Access 2000 ou Access 2002 - 2003. Vous devez remplacer les instructions Declare de l'API dans la base de données convertie par leurs équivalents 32 bits.
La liste suivante propose certains conseils pour la conversion de votre code.
J'obtiens un message d'erreur indiquant qu'une table dépasse la limite de 32 index.
Si votre base de données Microsoft Access version 2.0 contient une table avec 32 index ou plus et des relations associées, une erreur peut se produite lors de la conversion vers le format de fichier Access 2000 ou Access 2002 - 2003. Pour résoudre cette erreur, ouvrez votre base de données Access version 2.0 et modifiez la conception de votre table afin de réduire le nombre de relations pour la table de clé primaire ou supprimez certains index de la table de clé étrangère. Essayez ensuite d'effectuer une nouvelle conversion.
Un message d'erreur ODBC s'affiche lorsque j'ouvre un formulaire ou un état dans une base de données convertie.
Le message d'erreur « ODBC – échec de connexion à nomsourcededonnées » s'affiche lorsqu'une table de votre base de données Microsoft Access version 1.x ou 2.0 convertie est liée à une source de données ODBC (sources de données ODBC : données et informations requises pour accéder à ces données à partir de programmes et de bases de données prenant en charge le protocole ODBC (Open Database Connectivity).) qui utilise un gestionnaire de pilote et un pilote 16 bits. Microsoft Access 2002 ou version ultérieure peut uniquement ouvrir les sources de données ODBC liées qui utilisent les versions 32 bits du Gestionnaire de pilote ODBC (Odbc32.dll) et le pilote ODBC correspondant — par exemple, la version 32 bits du pilote ODBC pour Microsoft SQL Server (Sqlsrv32.dll).
Pour remédier à ce problème, vous devez créer un nouveau nom de source de données 32 bits de même nom (DSN) pour chaque source de données ODBC liée à la base de données 1.x ou 2.0 d'origine.
- Dans le Panneau de configuration de Microsoft Windows, double-cliquez sur Outils d'administration, puis sur Sources de données (ODBC).
- Créez le nouveau DSN en entrant des valeurs identiques au DSN d'origine. Par exemple, pour Microsoft SQL Server, vous devez au moins définir les valeurs Nom de source de données et Serveur. Il est possible que vous deviez également définir d'autres valeurs telles que le Nom de la base de données.
Si vous n'êtes pas certain du nom d'origine du DSN, ouvrez la base de données d'origine sous la version de Microsoft Access sous laquelle elle a été créée, ouvrez la table liée en mode Création (mode Création : fenêtre qui présente la création des objets de base de données suivants : tables, requêtes, formulaires, états, macros et pages d'accès aux données. En mode Création, vous pouvez créer de nouveaux objets de base de données et modifier la structure d'objets existants.), puis affichez la feuille de Propriétés de la table. La propriété Description de la table contient la définition de la chaîne de connexion de l'ODBC. Le paramètre DSN= suivant dans la chaîne de connexion correspond au nom du DSN.
Résolution des problèmes liés à la conversion d'une base de données Access 2000 ou version ultérieure vers Access 97
J'obtiens un message indiquant qu'au moins une bibliothèque d'objets Access 97 n'est pas présente sur mon ordinateur.
Vous pouvez reconvertir le code qui utilise les objets DAO (Data Access Object) (DAO (Data Access Objects) : interface d'accès aux données qui communique avec Microsoft Jet et des sources de données compatibles ODBC pour se connecter à, récupérer, manipuler et mettre à jour des données et la structure de base de données.) vers Microsoft Access 97, mais vous recevrez peut-être un message indiquant qu'au moins une bibliothèque d'objets Access 97 n'est pas présente sur votre ordinateur. Utilisez cette procédure pour résoudre les références manquantes.
- Convertissez la base de données Access 2000 ou version ultérieure vers Microsoft Access 97. Lorsqu'un message s'affiche indiquant qu'au moins une bibliothèque d'objets Access 97 n'est pas présente sur votre ordinateur, cliquez sur OK.
- Ouvrez la base de données Access convertie dans Microsoft Access 97.
- Ouvrez un module (module : collection de déclarations, d'instructions et de procédures stockées ensemble ou en tant qu'unité nommée. Il existe deux types de modules : les modules standard et les modules de classe.) dans la base de données.
- Dans le menu Outils,cliquez sur Références.
- Dans la zone Références disponibles, désactivez les cases à cocher en regard des références manquantes.
- Pour définir la référence correcte, activez la case à cocher en regard de la bibliothèque d'objets Microsoft DAO 3.51.
Remarque À la différence d'Access 2000 ou version ultérieure, Access 97 n'est pas conçu pour utiliser des objets ADO (ActiveX Data Object) (ADO (ActiveX Data Objects) : interface d'accès aux données qui communique avec des sources de données compatibles OLE DB pour la connexion, la récupération, la manipulation et la mise à jour de données.).
|