Être pris d’une collectionnite aigüe, c’est le bien. On ne fait pas une brocante, pas un vide grenier, ni même un magasin spécialisé pendant les soldes sans trouver une pépite qui nous manquait encore. On cherche, on fouille, on clique sur Ebay…
Mais la collection se faisant grandissante, quelques problèmes d’ordre logistique se posent rapidement : ça prend de la place, c’est difficile à ranger de manière pratique sans encombrer le salon et c’est un casse-tête niveau connectique pour ne pas avoir à jouer au jeu des péritels musicales. Mais c’est aussi une problématique de « gestion », de rayonnage virtuel. Classer ses jeux, un plaisir autant qu’une nécessité à laquelle j’ai répondu, il y a un paquet d’années, par la création d’un tableur Excel.
Je l’avais commencé en 1996 si je ne m’abuse. Pour la petite histoire, à cette époque, je passais des heures à remplir mon tableau pendant que mon cousin arpentait le manoir de Racoon City. Sans avoir joué à Resident Evil, je connais très bien le jeu et surtout ses musiques !
Ce tableau m’aura accompagné près d’une quinzaine d’années, aussi simple et épuré qu’il était. Mais parce qu’il ne répondait plus à mes attentes et qu’il ne couvrait pas tous mes besoins (voir IV), j’ai décidé de me lancer dans un projet d’envergure : transposer mon tableur Excel dans une base de données Access. Un boulot monstre déjà par la quantité d’infos qu’il y avait à y saisir mais aussi et surtout parce qu’à part des bribes de souvenirs de Modèles Conceptuels de Données abordés au BTS, je ne connaissais rien d’Access !
Point de départ d’une aventure de plusieurs mois.
Lire un petit bouquin « Notions Access », chercher des tutoriels sur le net, définir son besoin, penser la base, visualiser les relations entre les différentes tables, créer les tables, saisir les données… puis tout recommencer parce qu’on s’aperçoit que l’on n’a pas pris la bonne bretelle. Découvrir de nouvelles possibilités, les formulaires, les requêtes… Je crois que c’est la première fois de ma vie que j’apprends quelque chose d’aussi sérieux en autodidacte, et j’ai trouvé l’expérience géniale, même si elle a été source parfois de prises de têtes à s’en tirer une balle ! Et c’est finalement très grisant (et surtout valorisant) d’utiliser le résultat de ce travail au quotidien sachant que l’on est parti de rien, ou presque.
A mesure que je la construisais, j’ai complexifié un peu plus mon objectif et au final, elle est encore plus fonctionnelle et pratique que ce que j’espérais. Elle regroupe aujourd’hui un plus de 900 jeux, une trentaine de consoles, les OST et les artbooks.
Evidemment, je ne prétends pas avoir créé la base de données ultime. Elle reste très simple malgré tout et je pense être bien loin d’exploiter toutes les possibilités d’Access, faute de connaissances suffisantes. Les experts Excel me rétorqueront peut-être que finalement, c’était aussi réalisable sur le tableur.
Je vous présente le fruit de mon travail ci-dessous. Peut-être que certains d’entre vous y trouveront des pistes de réflexion…
- II. Level 1 : Creative Factory (nom inspiré par un célèbre niveau de Donkey Kong Country)
La conception de la porte d’entrée de ma base m’a pris un temps fou ! Rien, ou si peu, en terme de commande (uniquement le Push Start), mais j’avais envie de lui donner une sacrée gueule. J’ai donc rassemblé à peu près tous mes jeux préférés sur un seul et même formulaire. On aime ou pas… moi je trouve que ça donne envie de cliquer !

Encore un petit formulaire ensuite, histoire de bien définir le besoin de l’utilisateur (en l’occurrence moi hein.. si vous suivez…) : saisie d’information ou consultation.

Dernier choix avant de rentrer dans le vif du sujet : le nouvel élément à rajouter est-il un jeu ? une OST ? une console ? un book ? Pour info, en plus d’être une petite image sympa, je me sers de Wanted pour lister les jeux que je recherche.

Enfin, le formulaire principal, le cœur de la base. L’énumération et l’explication de chaque champ n’ayant que peu d’intérêt ; ils sont pour le moins explicites ; je précise juste que la plupart sont basés sur une liste de choix. Je clique sur la petite flèche et magie, la liste de tous les éléments saisis jusqu’ici s’offre à moi. C’est le cas des consoles (liste basée sur la table Console), éditeurs, développeurs, date de sortie, genre, etc… Evidemment, les listes ne sont pas verrouillées, lorsque l’élément voulu n’est pas dans la liste, il suffit de le saisir pour qu’il soit disponible dès la prochaine fois.
Sur la droite, des renseignements d’ordre matériel, avec notamment le support qui m’a permis de résoudre une belle problématique, j’y reviendrai plus tard.
La dernière petite nouveauté, que j’ai implémenté la semaine dernière : les champs compilation et produits dérivés. Ceux-ci sont par défaut invisibles. Il suffit de cliquer dans les cases respectives pour les faire apparaître. Pratique pour ne pas s’encombrer avec des champs inutiles lorsque ceux-ci ne sont pas requis. En effet, pour tout ce qui est oldies, les books et OST sont plutôt rares.
Le champ compilation peut être sujet à débat. J’ai fait mon choix mais ce n’est peut-être pas le meilleur. J’y inclus les cartouches de type xxx in 1, mais aussi Super Mario All Stars. Pourquoi ? J’estime que ce n’est pas un jeu, mais 4, tout simplement. J’ai donc une entrée pour chacun des 4 Mario contenus sur la cartouche, ayant tous une liaison avec la compilation SMAS.
Les différentes commandes en bas et à droite restent assez classiques, elles permettent de naviguer entre les enregistrements. Elles sont agrémentées d’une petite fonction recherche, et des boutons destinés à créer Ost et Artbook lorsque les champs correspondants sont activés. C’est un raccourci, la création de ces objets pouvant se faire directement dans leurs formulaires respectifs. Ce qui laisse en plus la liberté de créer des objets indépendants, et sans rapport avec un jeu quelconque (comme le CD Video Games Live ou le book 1000 Game Heroes).
- III. Level 2 : Contemplative View
Revenons quelques lignes plus haut. J’ai jusqu’ici insisté sur la fonction de création de nouveaux enregistrements : jeux, OST, artbooks, etc… Je vous emmène maintenant sur l’autre rive. Où l’on nous invite justement à contempler le travail de saisie préalable : les états ! Car évidemment, la finalité de ce type de ludothèque est bien d’avoir une image de sa collection à un instant T.
Le level 2 nous emmène dans les méandres suivants… attention au zombie !

4 types de reportings à disposition : la collection complète classée par consoles, les jeux de chaque console sur états séparés, les jeux recherchés, et, dans le Hall of Fame, un petit lien vers l’un de mes sites favoris : Unikgamer, qui permet de faire ses petits tops persos par console, année, type de jeux, etc… une merveille pour les fanas de tops en tous genres !
Level 2-1-2. Click.

Là aussi, je me suis fait plaisir. Exit la sobriété. L’idée de lister les consoles en saisissant simplement leur nom ne m’a même pas effleuré l’esprit. Non, chacune sera représentée par son logo. Un click, et la liste des jeux apparait !

Vu le nombre de machines, je vous laisse imaginer le temps qu’a pu prendre l’élaboration, en ayant toujours à l’esprit que je ne maitrise pas Access…
- IV. Tableur Excel VS. Base Access : Fight !
Comme je l’avais précisé en début d’article, si je me suis lancé dans ce projet, c’est avant tout pour contourner les limites d’Excel… non, je reformule. C’est avant tout pour contourner les limites de MES connaissances sur Excel qui ne me permettaient pas d’obtenir tout ce que je souhaitais. Access a répondu à mes besoins :
- Des états dynamiques
"Tiens Lapino, tu m’envoies ta liste de jeux Super Nes ?"
"Ouais.. stu veux.. mais alors attends. J’ouvre mon classeur, filtre automatique sur la colonne console, impression."
C’est une étape de trop ! Grâce aux requêtes, les états sont dynamiques dans Access. En gros, j’enregistre un nouveau jeu, et il est tout de suite dans mon état des jeux Super Nes. Pas de commande spécifique, c’est automatique vous dis-je !! Et mine de rien, quand on veut sortir les listes de jeux de 5 ou 6 consoles, on s’habitue très vite à ce confort qui nous affranchit de la lourde et chiante étape de filtrage !
- Des états cohérents
Problématique : j’ai une PC-Engine Duo, compatible Hu-Card et CD. J’ai une PC-Engine GT, compatible Hu-Card. Comment, dans Excel, exploité convenablement cette notion de compatibilité sur un jeu ? Le saisir 2 fois ? Hum.. pas très sexy.. Et si je ne les saisis qu’une fois, comment faire la différence entre les jeux qui pourront être joués sur la console de salon Nec (cartouche ET cd) de ceux qui seront uniquement jouables sur la portable ?
Aujourd’hui, grâce au jeu des requêtes croisées, chaque jeu est enregistré une seule fois. Les champs support et console terminent ensemble le tour de magie. Ma liste de jeux PC-Engine Duo réunit tous les jeux PC-Engine, celle de la GT uniquement les jeux PC-Engine cartouche !
Comme vous avez pu le voir sur les différents formulaires, toutes les commandes, toutes les fonctions n’ont pas été évoquées, sinon il aurait fallu un site internet entier pour l’expliquer ! J’ai zoomé sur ce qui me semblait le plus intéressant, le plus pertinent pour un gamer désireux de gérer sa ludothèque.
Je me répète mais il est important de le souligner : je ne prétends pas maitriser Access, et je ne prétends pas avoir enfanté la base de données ultime, loin de là. Les experts la trouveront certainement très simpliste. Elle a clairement facilité mon boulot et a rendu l’enregistrement de mes nouveaux jeux beaucoup plus intuitif et ludique. Si certains veulent s’en inspirer, je pourrais volontiers prodiguer quelques conseils. Et si certains veulent me filer quelques tuyaux pour l’améliorer, je les lirais avec un œil très attentif !
27/01/2012, 00:14
Bon, comme quoi c'est bien faisable de l'amadouer tout seul, ça m'arrange.
Par contre fiou, tu as dû bien t'amuser pour pondre cette article comme pour faire toute ta base de donnée j'imagine ^.^ !
Bon avec ton article tu me motive sacrément pour amadouer access, décidément, ça me tend les bras xD !
27/01/2012, 00:14
27/01/2012, 01:15
27/01/2012, 02:46
27/01/2012, 08:36
27/01/2012, 08:41
27/01/2012, 10:05
Je ne peux que t'encourager dans cette voie, l'outil est franchement puissant ! Mais si je peux te donner un conseil, pense toujours à coucher tes idées sur papier avant, ou éventuellement commencer par une "mini-réplique" de ta base, histoire de voir comment fonctionnent les relations, etc. Parce que sincèrement, quand tu t'aperçois au milieu que t'es pas parti du bon pied.... ben tu pleures !
@Locutus
Nous sommes demain, et j'attends ton avis copain !
@Karas & Subby
Franchement Excel m'a bien aidé pendant plusieurs années, et ça peut être largement suffisant. Tout dépend de votre besoin final en fait. Même si j'ai opté pour la Base de Données, j'ai toujours une petite pointe de nostalgie quand je revois mon tableur (que je n'ai jamais supprimé d'ailleurs !)
@guildo
Et bien merci !! Je te cache pas que j'ai mis du temps avant d'écrire cet article, parce que cela aurait pu facilement tomber dans le texte fastidieux !
@Lupi
Et bien... oui et non.. tout dépend de ce que tu appelles de l'aide.
Pour le B-A-BA, mon petit tutoriel m'a suffit. Après, j'ai fouiné tout seul, j'ai avancé à tâtons et je me suis débrouillé oui. En posant une petite question à droite à gauche de temps en temps, style "Eh mec.... tu peux avoir 2 clés primaires dans une table ? Non... ? Ok merci !" et hop, je replongeais dans mon taf.
Après, certaines commandes de ma base ont nécessité la création de codes en langage VBA. Par exemple (j'aurais ptet pu en parler dans le texte tiens!), une liste déroulante dépendante d'une autre liste. Dans ma base, une fois que tu as choisi la console du jeu que tu enregistres, le champ "support" ne te propose que les supports qui ont préalablement été rattachés à la console en question. Si j'ajoute un jeu Xbox360, j'aurais le choix entre DVD et XBLA, je ne pourrai pas lui donner un support cartouche.
Idem pour les champs visibles/invisibles, il faut du VBA. Et pour ce type de problématique, si t'as pas les bases, c'est mort. Moi je ne les avais pas, donc je me suis réfugié dans les forums pour trouver mes solutions. Je n'avais pas besoin de poser de questions, j'ai vite trouvé via Google des gens qui avaient eu les mêmes soucis !
Merci à tous pour vos commentaires en tout cas !