Différences entre versions de « Conversion MS Access »

De Cliss XXI
Sauter à la navigation Sauter à la recherche
imported>SylvainBeucler
 
(7 versions intermédiaires par 3 utilisateurs non affichées)
Ligne 14 : Ligne 14 :
 
* '''mdb-export''' : permet d'exporter une table de la base access dans le format CSV. L'option "-S" permet de sécuriser les espaces, l'option "-d 'caractère'" permet de spécifier un délimiteur de colonne (le délimiteur est "," par défaut).
 
* '''mdb-export''' : permet d'exporter une table de la base access dans le format CSV. L'option "-S" permet de sécuriser les espaces, l'option "-d 'caractère'" permet de spécifier un délimiteur de colonne (le délimiteur est "," par défaut).
 
   Ex : mdb-export -Sd '$' nom_base.mdb nom_table : on exporte la table nom_table de la base nom_base avec le délimiteur $
 
   Ex : mdb-export -Sd '$' nom_base.mdb nom_table : on exporte la table nom_table de la base nom_base avec le délimiteur $
* '''mdb_sql''' : un interpréteur SQL simple
+
* '''mdb-sql''' : un interpréteur SQL simple
 
* '''mdb-ver''' : retourne le format de la base passée en paramètre  
 
* '''mdb-ver''' : retourne le format de la base passée en paramètre  
 
* '''mdb-schema''' : génère les définitions de données de la base passée en paramètre
 
* '''mdb-schema''' : génère les définitions de données de la base passée en paramètre
 +
 +
Il y a un travail en cours pour module OpenOffice à base de mdbtools, mais il ne semble pas très actif [http://dba.openoffice.org/drivers/mdb/index.html] [http://eis.services.openoffice.org/EIS2/cws.ShowCWS?Id=2959&Path=SRC680%2Fmdbdriver02].
  
 
== MDB2MySQL ==
 
== MDB2MySQL ==
 +
 +
http://www.enobis.com/sw/mdb2mysql/
  
 
MDB2MySQL se base sur MDB Tools pour fournir un dump utilisable par MySQL.
 
MDB2MySQL se base sur MDB Tools pour fournir un dump utilisable par MySQL.
Ligne 29 : Ligne 33 :
 
== Connecteurs ==
 
== Connecteurs ==
  
=== ODBC ===
+
=== ODBC - OpenOffice ===
  
Il est possible d'utiliser un connecteur [http://en.wikipedia.org/wiki/ODBC ODBC]. Il est possible d'exporter des données table par table en utilisant ODBC en provenance (import) ou à partir (export) d'Access, ce qui peut suffire dans certains cas, pourvus que l'on ait des licences Windows et Access, et qu'il n'y ait pas de relations entre les tables (clefs étrangères, etc.).
+
Sous Windows, il est possible d'utiliser un connecteur [http://en.wikipedia.org/wiki/ODBC ODBC]. L'accès ODBC à un .mdb ne nécessite pas Access.  La version Windows d'OpenOffice peut notamment en tirer parti [http://www.openoffice.org/FAQs/ms-access/ms-access.html] (fonctionne toujours de la même manière sous OOo3).  Sous GNU/Linux, ce n'est pas possible à notre connaissance (faute de connecteur ODBC libre pour Access).
  
 
=== Autres technologies ===
 
=== Autres technologies ===
Ligne 47 : Ligne 51 :
  
 
L'outil dit pouvoir récupérer des données depuis MS Access. Nécessite-t-il une licence MS Access et/ou Windows?
 
L'outil dit pouvoir récupérer des données depuis MS Access. Nécessite-t-il une licence MS Access et/ou Windows?
 +
 +
L'outil de migration est inclus dans le paquet 'mysql-gui-toolkit'. Il semble qu'il nécessite windows pour fonctionner (il y a cependant une version qui fonctionne en mode texte mais son fonctionnement reste à définir). Par contre, le paquet contient '''Mysql Administrator''', une application graphique du type de phpmyadmin qui semble assez complète, ainsi que '''mysql-query-browser''', qui est une application graphique pour effectuer des requêtes. Le gros défaut de ces applications est qu'elles nécessitent d'avoir la dernière version de Java.
  
 
== pgmigration ==
 
== pgmigration ==
Ligne 54 : Ligne 60 :
 
== Jackcess ==
 
== Jackcess ==
  
Solution en Java pour accéder à des bases MS Access 2000 (uniquement), mais en lecture et écriture. Rien à priori pour _exporter_ des données.
+
Solution en Java pour accéder à des bases MS Access 2000 (uniquement), mais en lecture et écriture. [http://code.google.com/p/mdb-sqlite/ mdb-sqlite] utilise cette bibliothèque pour convertir vers SQLite.
  
 
== Scripts en VB ==
 
== Scripts en VB ==
  
Si vous avez un MS Access à portée de main, on peut tenter d'extraire les données avec son langage de script, VBScript. Par exemple: http://burke.ath.cx/~ernesto/MDBtoSQLite.vbs (pour SQLite). D'après l'auteur, c'est du quick'n dirty.
+
Si vous avez un MS Access à portée de main, on peut tenter d'extraire les données avec son langage de script, VBScript. Par exemple: http://code.google.com/p/access2sqlite/ (pour SQLite). D'après l'auteur, c'est du quick'n dirty.

Version actuelle datée du 21 janvier 2010 à 18:19

Pour convertir une base MS Access vers autre chose...

MDB Tools

Utilisé notamment par OpenOffice.org 2 pour offrir une liaison en lecture seule à une base Access. OOo2 ne permet en revanche aucun type d'exportation à ma connaissance.

MDB Tools est composé de plusieurs outils simples, dont :

  • mdb-tables : permet de lister les tables qui composent la base de données. L'option -1 permet d'afficher chaque table sur une ligne différente.
 Ex : mdb-tables -1 base.mdb
  • mdb-export : permet d'exporter une table de la base access dans le format CSV. L'option "-S" permet de sécuriser les espaces, l'option "-d 'caractère'" permet de spécifier un délimiteur de colonne (le délimiteur est "," par défaut).
 Ex : mdb-export -Sd '$' nom_base.mdb nom_table : on exporte la table nom_table de la base nom_base avec le délimiteur $
  • mdb-sql : un interpréteur SQL simple
  • mdb-ver : retourne le format de la base passée en paramètre
  • mdb-schema : génère les définitions de données de la base passée en paramètre

Il y a un travail en cours pour module OpenOffice à base de mdbtools, mais il ne semble pas très actif [1] [2].

MDB2MySQL

http://www.enobis.com/sw/mdb2mysql/

MDB2MySQL se base sur MDB Tools pour fournir un dump utilisable par MySQL.

Il y a cependant beaucoup d'erreurs:

  • il peut produire des VARCHAR d'une taille supérieur à 255, ce qui n'est pas admis par MySQL (à la place de passer vers TEXT)
  • les noms des tables devraient être modifiés pour remplacer les caractères invalides pour MySQL mais valides dans Access (notamment, les espaces) - mais ça ne fonctionne pas :/
  • si un champ en fin d'enregistrement est vide, il n'est pas utilisé dans le "INSERT", et MySQL considère cela comme une erreur.

Connecteurs

ODBC - OpenOffice

Sous Windows, il est possible d'utiliser un connecteur ODBC. L'accès ODBC à un .mdb ne nécessite pas Access. La version Windows d'OpenOffice peut notamment en tirer parti [3] (fonctionne toujours de la même manière sous OOo3). Sous GNU/Linux, ce n'est pas possible à notre connaissance (faute de connecteur ODBC libre pour Access).

Autres technologies

Nous avons entendu parler d'un connecteur ADO pour MS Access - c'est à dire, un accès générique SQL, sous MS Woe, et en utilisant le connecteur propriétaire ADO de chez MS. Cela peut peut-être servir pour exporter les données, mais avec quels outils? Par contre cela peut sans doute servir à intéragir avec une base MS Access, sans installer MS Access lui-même (par exemple de puis OOo2 Base).

Dans la même veine, il est possible de taper dans MS Excel via le principe générique de composants OLE. Jakarta POI est une implémentation libre mais en Java.

Ces solutions dépend de trop de composants propriétaires pour être pérennes (il y est peut-être possible d'utiliser DotGNU ou Mono, si ceux-ci proposent un remplacement libre pour ADO.NET). Elles peuvent servir si elles permettent de convertir les données une fois pour toute - mais cela ne semble pas trivial.


MySQL Migration Toolkit

http://mysql.com/products/tools/migration-toolkit/

L'outil dit pouvoir récupérer des données depuis MS Access. Nécessite-t-il une licence MS Access et/ou Windows?

L'outil de migration est inclus dans le paquet 'mysql-gui-toolkit'. Il semble qu'il nécessite windows pour fonctionner (il y a cependant une version qui fonctionne en mode texte mais son fonctionnement reste à définir). Par contre, le paquet contient Mysql Administrator, une application graphique du type de phpmyadmin qui semble assez complète, ainsi que mysql-query-browser, qui est une application graphique pour effectuer des requêtes. Le gros défaut de ces applications est qu'elles nécessitent d'avoir la dernière version de Java.

pgmigration

Il existe un module de mgiration vers PostgreSQL nommé pgmigration qui utilise des bibliothèques de Microsoft (MDAC et JET4) pour accéder à la base Access.

Jackcess

Solution en Java pour accéder à des bases MS Access 2000 (uniquement), mais en lecture et écriture. mdb-sqlite utilise cette bibliothèque pour convertir vers SQLite.

Scripts en VB

Si vous avez un MS Access à portée de main, on peut tenter d'extraire les données avec son langage de script, VBScript. Par exemple: http://code.google.com/p/access2sqlite/ (pour SQLite). D'après l'auteur, c'est du quick'n dirty.