(modifié le 14 janvier 2016 à 23:53)

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.

  1. MySQL propose justement de télécharger ce connecteur MySQL ODBC gratuitement. Installez-le.
  2. Se rendre dans le menu Démarrer > Outils d'administration > Source de données (ODBC), ou via démarrer > exécuter : odbcad32.exe
  3. Cliquer sur Ajouter
  4. Choisir MySQL ODBC :

    Puis cliquer sur Terminer.
  5. 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 :
    config-odbc-mysql
    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.
  6. Cliquer sur OK, vous devriez obtenir ceci :
  7. C'est terminé pour la partie ODBC.

Access permettra de modifier la base de données en temps réel, alors que Excel ne permettra qu'une lecture seule (car il ne s'agit pas d'un SGBD).

Accès à MySQL depuis Access

Access permet, via le connecteur ODBC, d'utiliser les données MySQL de deux façons différentes :

  1. de façon synchrone : chaque modification effectuée avec Access est répercutée sur la base MySQL (similaire à une vue)
  2. 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 :

  1. Dans l'onglet Données externes > Plus : Base de données ODBC
    (ou Données > A partir d'autres sources > A partir d'ODBC suivant votre version)
  2. Dans le deuxième onglet Source de données machine sélectionner le Connecteur précédemment créé :
  3. Pour établir une liaison synchrone, sélectionner Lier à la source de données en créant une table attachée :
  4. Sélectionner que vous souhaitez exploiter et cliquer sur OK :
  5. 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 :

  1. Via l'onglet Données > Données > A partir d'autre sources : Provenance : Microsoft Query
  2. 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 :
  3. Si vous souhaitez filtrer les données sélectionnez les colonnes, sinon cliquer sur Suivant :
  4. Vous pouvez faire un tri sur une colonne, sinon cliquer sur Suivant :
  5. Cliquer sur le bouton Terminer :
  6. Sélectionnez la méthode d'affichage des données dans votre classeur souhaitée, puis sur le bouton OK :
  7. 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...

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter