But : utiliser une base MySQL à partir de Microsoft Access et Excel
De nombreuses entreprises utilisent aujourd’hui Microsoft Access pour gérer leurs « base de données », souvent internes. Personnellement je trouve que Microsft Access n’est pas un réel SGBD tant il est limité. On doit son succès grâce à l’interface graphique qui permet de tout réaliser ou presque sans connaître une seule commande SQL.

Si vous êtes développeur, votre entreprise peut vous demander de développer une application de gestion basée sur Access. Pourquoi ? Tout simplement car la personne qui devra accéder à cette base n’aura aucune compétence en SQL et que Access reste simple à utiliser graphiquement.
Ne jetez pas l’éponge tout de suite, voici une solution redoutablement efficace ! Je vous propose de développer votre application sur une base MySQL avec par exemple un code source PHP (ou Perl, python, ), en rendant accessible le tout avec Access et/ou Excel !
Les versions utilisées pour mon exemple sont : Office 2007 et MySQL 5.x (fonctionne également avec Office 2003, seuls les menus changent).
Base de données démo
Pour notre exemple, je vous propose de créer une base de donnée simple :
CREATE TABLE `blogmotion`.`demo` ( `id` INT NOT NULL AUTO_INCREMENT , `prenom` VARCHAR( 30 ) NOT NULL , `nom` VARCHAR( 50 ) NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = MYISAM ;
Puis insérons quelques données :
INSERT INTO `demo` (`id`, `prenom`, `nom`) VALUES (1, 'Jean', 'Némar'), (2, 'Jay', 'Lafrite'), (3, 'Paul', 'Hochon'), (4, 'Michael', 'Hurni');
Vous pouvez injecter directement le code dans PhpMyAdmin si vous l’utilisez via l’onglet SQL.
Installation du connecteur ODBC
Note : Cette manipulation doit-être réalisée sur tous les postes qui devront accéder à cette base de donnée via Access.
Pour permettre l’accès à la base MySQL de façon transparente au travers d’une application Microsoft nous devons installer un connecteur ODBC.
- MySQL propose justement de télécharger ce connecteur MySQL ODBC gratuitement. Installez-le.
- Se rendre dans le menu Démarrer > Outils d’administration > Source de données (ODBC), ou via démarrer > exécuter : odbcad32.exe
- Cliquer sur Ajouter

- Choisir MySQL ODBC :

Puis cliquer sur Terminer. - Préciser un nom et une description pour ce connecteur (de votre choix) puis entrez le nom ou adresse IP du serveur MySQL (localhost pour moi) ainsi que l’utilisateur ayant accès à votre base de données :

Vous devrez obtenir Connection Successful si vous cliquez sur le bouton Test.
Si ce n’est pas le cas, pensez à vérifier que votre serveur MySQL fonctionne et que celui-ci est accessible à partir de l’extérieur, l’accès est parfois restreint sur l’interface de boucle local (localhost) 127.0.0.1. - Cliquer sur OK, vous devriez obtenir ceci :

- C’est terminé pour la partie ODBC.
Accès à MySQL depuis Access
Access permet, via le connecteur ODBC, d’utiliser les données MySQL de deux façons différentes :
- de façon synchrone : chaque modification effectuée avec Access est répercutée sur la base MySQL (similaire à une vue)
- de façon indépendante : toutes les données de la ou les tables sont copiées dans Access sans aucun lien avec MySQL
Si c’est uniquement pour de la lecture, optez pour la méthode 2. Dans le cas contraire (mise à jour, suppression, ajout d’informations) optez pour la méthode 1.
Lancer Access, puis dans une nouvelle base :
- Dans l’onglet Données externes > Plus : Base de données ODBC :

- Dans le deuxième onglet Source de données machine sélectionner le Connecteur précédemment créé :

- Pour établir une liaison synchrone, sélectionner Lier à la source de données en créant une table attachée :

- Sélectionner que vous souhaitez exploiter et cliquer sur OK :

- Vous retrouvez vos données de MySQL dans Access :

Attention : chaque modification effectuée sera répercutée sur votre base MySQL.
Accès à MySQL depuis Excel
L’interfaçage entre Microsoft Excel et MySQL se fait via Microsoft Query, utilitaire inclut dans la suite Office.
L’opération varie quelque peu par rapport à Access :
- Via l’onglet Données > Données > A partir d’autre sources : Provenance : Microsoft Query

- Puis sélectionner la ou les tables souhaitées :

Cliquer sur le bouton Aperçu maintenant pour vérifier l’accès, puis sur Suivant :

- Si vous souhaitez filtrer les données sélectionnez les colonnes, sinon cliquer sur Suivant :

- Vous pouvez faire un tri sur une colonne, sinon cliquer sur Suivant :

- Cliquer sur le bouton Terminer :

- Sélectionnez la méthode d’affichage des données dans votre classeur souhaitée, puis sur le bouton OK :

- Et voici le résultat :

Si vous modifiez une valeur dans la base MySQL, vous pouvez forcer la mise à jour de la feuille Excel en faisant un clic droit sur la cellule concernée > Actualiser. Ou presser simultanément CTRL+ALT+F5 pour mettre à jour toutes les cellules.
Vous retrouverez les informations de connexion via l’onglet Données > Connexion du ruban Office.
Conclusion
Le connecteur MySQL permet de préserver votre base de données MySQL dans le moteur MySQL tout en la rendant accessible aux applications Microsoft Office.
C’est simple, propre et efficace ! Il ne reste plus qu’à mêler les macros pour les plus téméraires…












Déjà 8 commentaires
5 février 2010 à 18h32
Social comments and analytics for this post…
This post was mentioned on Twitter by CallMeDams: RT @xhark: Sur BM: Connecter une base MySQL avec Access ou Excel http://bit.ly/ci1xBx...
dit :
9 février 2010 à 13h12
Merci pour les tips !
dit :
15 février 2010 à 19h00
Pratique ce genre d’astuce, merci.
25 mars 2010 à 19h38
Merci 1000x pour ce tuto.
J’ai une question : est-ce possible de se connecter avec ODBC à une base de données distante stockée sur un serveur ?
En local (avec localhost), pas de problème !
Merci de votre réponse.
26 mars 2010 à 9h36
@perflo : oui, cela fonctionne également si l’utilisateur avec lequel tu te connectes a les droits de connexion depuis une IP autre que 127.0.0.1 (localhost).
Pour vérifier cela tu peux utiliser MySQL Browser (inclus dans MySQL Tools qui est gratuit)
8 juillet 2010 à 17h57
franchement excellent tuto…félicitations
au fait j’ai deux question :
est ce possible de relier tout cela à une base de données d’un logiciel qui génére un fichier avec une extension DATA/
l’objectif c’est de passer par Mysql via ce ficher (.DATA) et de relier tt le reste avec Mysql?.
si c’est possible est ce qu’il faut créer un pilote pour cette extension?
merci bcp
8 juillet 2010 à 22h18
@unique04 : j’ai un peu de mal à saisir ta question, peux-tu être plus précis?
12 juillet 2010 à 10h16
salut Xhark !
en fait j’ai un accès à une base de données d’un logiciel dont je veux exploiter le contenu avec excel ou access.
étant donnée l’extension de ce fichier est DATA je ne peux pas saisir ce fichier dans ma base de données MySQL, du coup je me demande faut il créer un pilote pour cette extension?
qu’est ce que t’en penses?
Merci