EXPORTER UNE BASE DE DONNEES MS ACCESS VERS MYSQL OU POSTGRESQL

Messages postés
56
Date d'inscription
vendredi 20 octobre 2000
Statut
Membre
Dernière intervention
13 octobre 2008
- - Dernière réponse : cs_addy
Messages postés
39
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
20 mars 2009
- 6 oct. 2007 à 02:45
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/31405-exporter-une-base-de-donnees-ms-access-vers-mysql-ou-postgresql

Afficher la suite 
mastervanou
Messages postés
56
Date d'inscription
vendredi 20 octobre 2000
Statut
Membre
Dernière intervention
13 octobre 2008
-
DAO...il aurait été interessant de voir les nouvelles techniques d'access au données en .net
cs_addy
Messages postés
39
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
20 mars 2009
-
En fait le but du jeu n'est pas de démontrer les techniques d'accès aux données sous .net (les exemples de code portant sur ce sujet sont très nombreux sur le web), mais plutôt de présenter un cas d'automatisation de MS Access qui apporte un début de solution à un problème qui quoique banal n'en a toujours pas (si vous aviez essayé MySQL Migration Toolkit, vous comprendriez de quoi je parle).
cs_raver2046
Messages postés
22
Date d'inscription
mercredi 25 septembre 2002
Statut
Membre
Dernière intervention
23 avril 2009
-
j'ai essayé de le compiler avec VB EXPRESS 2005 sa marche pas.... puis-je avec l'exe ?
cs_addy
Messages postés
39
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
20 mars 2009
-
Pour compiler cette source, il te faut Office XP ou 2003. Il faut en plus que tu aies validé l'option de prise en charge de la programmabilité DotNET pendant l'installation de Office (sinon, vas sur le site de Microsoft et télécharge le paquet Office XP/2003 Primary Interop). Enfin, tu dois ajouter les références aux assemblies managés de MS Access et DAO (et non les références COM). Pour ce qui est de l'exe, c'est pas possible. Seuls les codes-sources circulent sur ce site.
cs_eldim
Messages postés
961
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
-
Bonjour,
n'ayant toujours pas cerner comment on crée une base MySQL avec ma version windows je n'ai pas pu tester le résultat, mais le script créé semble impeccable.
Bonne idée de source
cs_eldim
Messages postés
961
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
-
Après test je t'ai mis 10 car c'est vraiment génial !!!
le seul hic c'est que dans une clé primaire on ne peut pas dépasser 85 caractères... dans mysql mais t'y peut rien...

sinon comment tu fais un "cint" d'access dans MySQL ?
cs_eldim
Messages postés
961
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
-
Ah merde les booléens ne sont pas pris en compte... snif
cs_addy
Messages postés
39
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
20 mars 2009
-
Salut ELDIM,
Disons que que par rapport à ta première préoccupation, créer une base MySQL sous Windows est assez facile. Tu as le choix entre:
- utiliser l'utilitaire de ligne de commade de MySQL (en tappant mysql -h localhost -u root -p par exemple) et
- utiliser un outil d'administration comme MySQL Administrator ou bien phpMyAdmin (qui exige que PHP soit installé et configuré sur ta machine).
Dans le second cas tu bénéficieras d'une interface conviviale et intuitive pour la création de ta BDD (et en plus tu auras le droit de commettre des erreurs de frappe, ce qui est vivement déconseillé en ligne de commande).
Pour ce qui est du type booléen, MySQL n'en a pas (du moins la version que j'utilise). A la place on peut utiliser un type d'entiers ou une énumération ('Vrai', 'Faux'); l'essentiel etant que la logique soit préservée.
Pour la conversion essaie la fonction CAST (ex: CAST(x AS INTEGER)). Je ne l'ai pas testé. Mais étant donné qu'elle fait partie de la norme SQL, je suppose qu'elle devrait être implémentée sous MySQL (qui n'est pas très callé sur la norme ceci étant dit).
cs_eldim
Messages postés
961
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
-
Merci de tes réponses, j'avais fini par trouver (à la place du cast y a aussi le convert mais les deux doivent fonctionner)

ce qu'il manque à ta source au niveau des booléens ce sont deux choses :
- le résultat doit se trouver entre '
- il ne faut pas se contenter de vérifuer le yes mais vérifier aussi la valeur -1

pour le reste j'ai testé c'est impeccable et le passage d'access à MySQL ben comment dire... c'est le jour(MySQL) et la nuit(Access)...
cs_eldim
Messages postés
961
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
-
Au fait à la fin de ton source si tu ne veux pas avoir de problèmes d'accents il faut indiquer que tu utilise le mode ANSI :

à la place de :
Dim textFile As StreamWriter = File.CreateText(sfdSaveScript.FileName)

Mettre :
Dim textFile As StreamWriter = New StreamWriter(sfdSaveScript.FileName, False, System.Text.Encoding.Default)
cs_addy
Messages postés
39
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
20 mars 2009
-
Lors de l'exécution d'un script avec l'un des outils fournis par MySQL AB (Query Runner ou ligne de commande), on peut préciser l'encodage utilisé par ce fichier (Avec Query Runner, il suffit d'ouvrir le fichier en tant que script UTF-8 par exemple). Autrement, la solution que tu préconnises s'avère très utile. De son côté, phpMyAdmin ne souffre pas du tout de la présence de caractères Unicode dans le texte. Enfin, j'ai coutume d'exécuter le script directement à partir de DbExport (j'inclurai peut être cette possibilité dans une future mise à jour de la source). De la sorte, je m'affranchis de tous les soucis liés au fait que .NET utilise UNICODE par défaut pour l'encodage de texte.
cs_eldim
Messages postés
961
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
-
ok par contre moi j'utilise mysql sans php... voila pourquoi ça fonctionne mieux en précisant ANSI... (d'autant que les accents sont préservés en ANSI et pas en UTF8)
miox
Messages postés
2
Date d'inscription
vendredi 3 mars 2006
Statut
Membre
Dernière intervention
10 mars 2006
-
j'ai essayé de le compiler avec VB EXPRESS 2005 ça marche pas....pourqoi en tout cas c'est vraiment utile pour moi.Est ce que tu peut m decrire ce qui cloche là.
cs_eldim
Messages postés
961
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
-
ce qui cloche c'est qu'il te faut une vrai version à mon avis... visual basic ou visual studio pro
cs_addy
Messages postés
39
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
20 mars 2009
-
Personnellement, je n'ai jamais essayé de compiler DbExport sous VB .NET 2005 Express. Mais le problème que tu poses pourrait aussi venir de ta version de Office. DbExport utilise les PIA (Primary Interop Assemblies) de Office. Il en existe pour les trois dernières versions de la suite bureautique (XP, 2003 et 2007) et elles sont disponibles en téléchargement sur le site de l'éditeur. Ces PIA peuvent par ailleurs être installées avec Office. Il suffit pour célà d'activer l'option "Prise en charge de la programmabilité .NET" lors de l'installation. Il l'absence des PIA, je serais surpris que tu parviennes à compiler DbExport.