Il est de bon ton de se souhaiter la bonne année. Mais vous, et vous seul, pourrez faire en sorte que cette année soit bonne, meilleure que celle qui vient de s'écouler. Apprenez à ne compter que sur vous, car personne n'est plus qualifié que vous-même pour bâtir, réparer ou améliorer votre propre vie. Personne ne fera les choses à votre place. D'ailleurs, tout ce que les autres peuvent faire, c'est souhaiter que vous le fassiez. Et ne croyez pas que tout ceux qui vous entourent vous apporteront des solutions : certains font juste partie de vos problèmes. Transformez vos résolutions en actes, et dans douze mois, retournez-vous et souriez-vous fièrement : C'était long. C'était difficile. Mais ça y est : 2017 était une bonne année, merci Moi.

Best of Gestion
 
Exemple de gestion d'une menuiserie

Je vous expose, dans cette page, le fonctionnement général et l'utilisation d'une base de données relativement complexe destinée à gérer une menuiserie, très représentative, typique, de la gestion  de n'importe quel commerce ou entreprise de services : clients, fournisseurs, factures.

 
Sommaire

Pendant que vous lisez ce mode d'emploi, vous pouvez cliquer avec le bouton droit de votre souris pour télécharger BestOfGestion :

J'ai entièrement réalisé cette base de données avec Access 97 ou 2000 (je ne me souviens plus).

Bien que ce programme soit finalisé et prêt à l'emploi, les circonstances ont fait qu'il n'a jamais été mis en production : quelques "défauts de jeunesse" peuvent subsister : des calculs qui ne seraient pas effectués immédiatement, ou des erreurs de programmation, des manques, etc.

Comme il s'agit d'un programme entièrement personnalisé, répondant donc aux desiderata d'une entreprise en particulier, il n'existe pas d'aide ni de documentation concernant ce programme, à part cette page.

Utilisez ce programme en l'état à titre d'étude uniquement ! Ce ne serait pas sage de le mettre en production réelle car il n'a jamais été testé en situation de production.

Conseil d'ami : inspirez-vous en si vous voulez, mais ne l'utilisez pas tel quel.

Cette page est un simple mode d'emploi d'utilisation, et ne dissèque pas du tout le fonctionnement technique en arrière-plan de cette base de données.

Ouverture de la base

La base de données contient plein de données de test afin de mieux vous rendre compte de son fonctionnement.

 

Lors de l'ouverture, cet écran apparaît :

 

Gestion des objets

Un objet - au sens de la menuiserie - est une table (une vraie table, pas une table Access) , un buffet, une commode, une armoire, ...

Dans la liste des objets, choisissez Buffet : .

Le formulaire F_Objet s'ouvre automatiquement, avec toutes les spécificités d'un buffet au sens général : Le nom générique : Buffet, et un champ Remarques qui ne contient rien, mais dans lequel on pourrait indiquer, par exemple : Le buffet ne peut pas se placer à moins d'un mètre d'un radiateur pour des questions de sécurité.

Un buffet est composé d'un certain nombre d'éléments que, dans le jargon de la menuiserie, nous appelons Postes. Je les précise dans le sous-formulaire F_ObjetPoste (basé sur la table T_ObjetPoste) : Dos, Pied carré, Pied rectangulaire, Pied rond, Plateau ébène 30MM, Porte d'armoire et Vis à bois 10MM.

Nous n'avons pas précisé combien de pieds il faut, et un buffet n'est pas composé à la fois de pieds ronds, rectangulaires et carrés : Il faut choisir !

En fait, ce sous-formulaire contient les postes possibles pour l'élaboration d'un buffet

Ce choix sera effectué lorsque nous démarrerons un travail : C'est à dire lorsque un client commandera un objet (Un buffet en l'occurrence).

Vous pouvez ainsi ajouter ou supprimer n'importe quel poste pour n'importe quel objet.

Vous pouvez même supprimer l'objet entier : .

 

Est-il possible de créer de nouveaux postes ?

Par exemple, puis-je ajouter le poste Charnière à mon buffet, même si elle n'est pas proposée ?

 

Oui !

Gestion des postes

Pour ce faire, nous allons devoir gérer les postes. Fermez ce formulaire (vous vous retrouvez alors au menu principal, qui était en arrière-plan).

Avant de créer de nouveaux postes, voyons comment les postes existants se gèrent. Choisissez Pied carré dans la liste:

Champ Explication
Fournisseur C'est l'entreprise qui fournit ce pied carré. En effet, notre menuisier ne s'amuse pas à tout fabriquer lui-même : certains éléments sont achetés à part, tels que ces pieds carrés.
Référence C'est la référence de ce pied carré chez Fournibois, ce qui rend la commande plus facile.
P.A. Prix que demande Fournibois pour un pied carré
P.V. Prix de vente de ce même pied carré pour les clients de notre menuisier
Nombre Min Nombre minimum de pieds carrés qu'il faut commander chez Fournibois. Ici, Fournibois accepte de les vendre à la pièce.
Surface Min Ne s'applique pas ici : c'est seulement pour les pièces de plus grande surface comme les dos d'armoire, par exemple.

Ce Pied carré peut faire partie de plusieurs Objets . Nous indiquons dans ce sous-formulaire à quels objets ce poste peut s'appliquer :

On peut ajouter d'autres objets ou en supprimer .

Entendons-nous bien : La suppression d'un objet dans ce sous-formulaire (par exemple la Table ) ne supprimera pas l'objet Table, mais supprimera simplement Table de la liste des objets qui peuvent utiliser le poste affiché (Ici le Pied carré). En d'autres mots, supprimer Table ici revient à dire "La table ne peut plus contenir de Pied Carré". Pour supprimer vraiment "Table", il faut aller dans la gestion des Objets, car je vous rappelle que nous sommes ici dans la gestion des postes.

Fermez ce formulaire pour revenir au menu principal.

Exercice : Ajoutez un nouvel objet (Un lit).

Assignez-lui différents postes existants :

  • Barre transversale
  • Vis à bois 10MM
  • Pieds ronds

Assignez-lui également 2 postes inexistants (Peu importe le fournisseur, les prix, etc.)

  • Matelas
  • Sommier

Admettons que le poste Sommier nouvellement créé est fourni par un nouveau fournisseur : La maison du sommeil. Vous avez sans doute déjà compris qu'il faut cliquer sur Nouveau fournisseur dans le menu principal.

Analysons plutôt un fournisseur existant : Fournibois : .

Voici le formulaire F_Fournisseur :

Le gros 1 en bleu est la clé primaire : IDFournisseur.

Il y a une remarque exceptionnelle "Bois sur mesure en grande quantité".

En fait, cette remarque n'a pas un caractère exceptionnel... Je voulais (sans doute maladroitement) souligner le fait que les remarques contiennent les informations qu'on n'arrive pas du tout à caser dans les autres champs.

Il aurait été sans doute bien pratique d'afficher en dessous, comme sous-formulaire, les différents postes qui sont livrables par la société en question (Fournibois). (C'est un exemple d'amélioration à apporter à la base de données).

Pour ajouter à la liste des fournisseurs possibles La maison du sommeil, il faut que vous fermiez ce formulaire et que vous cliquiez sur .

Une fois ce nouveau fournisseur créé, vous pourrez alors choisir dans le menu principal, dans la liste des postes, le matelas que vous aviez créé précédemment, et vous pourrez préciser qu'il s'achète à La Maison du Sommeil.

Bref :

Vous créez un nombre illimité d'objets qui possèdent chacun un nombre illimité de postes qui s'achètent à un nombre illimité de fournisseurs, mais un seul fournisseur par poste.

Un poste ne peut avoir qu'un seul fournisseur. Si un même poste peut s'acheter chez deux fournisseurs, il faudra créer 2 postes distincts, comme si c'étaient 2 postes tout a fait différents, ce qui n'est pas très rationnel, j'en conviens

Les clients

Choisissez Antonna Pierre dans la liste des clients du Menu Principal.

Vous indiquerez donc les coordonnées du client (Adresse, Téléphone, fax, e-mail, ...)

Comme Monsieur Antonna est un très bon client, nous lui assignons un rabais perpétuel de 55 %. C'est un rabais qui sera appliqué par défaut à toutes ses commandes, mais il sera possible de modifier exceptionnellement ce taux de rabais selon le travail qu'il demande, ou l'humeur du menuisier.

Les travaux

Passons au travail quotidien !

le commerce avec nos clients. Pierre Antonna nous commande une bibliothèque et deux commodes.

Cet ensemble d'objets commandés sont regroupés sous l'appellation Travail.

Ce Travail consiste à lui construire 1 bibliothèque et 2 commodes (Il existe déjà).

Pour le voir, choisissez Antonna Pierre dans la liste des clients du menu principal, et recherchez le travail numéro 47 :.

Vous voici dans la gestion de ce travail47 :

Il y a effectivement 1 bibliothèque et 2 commodes.

En bleu ciel, nous avons le prix d'achat et le prix de vente unitaires, qui représentent les prix cumulés des Postes utilisés dans cet objet "Bibliothèque".

En bleu pâle : le prix total (la multiplication du prix par le nombre d'objets commandés).

Pour la bibliothèque, ça ne change pas, car il n'y en a qu'une, mais pour la commode, on constate la multiplication par 2.

Le rabais global de 55%, concédé à Pierre Antonna est présent ici (176.39 de rabais). Total final : 144.32.

Pour les 2 commodes, notre menuisier a décidé de ne pas appliquer les 55% de rabais (pour une raison qui ne nous regarde pas)

En dessous, il y a les totaux en bleu pâle : notre menuisier en a pour 1275.70 d'achat total de fournitures, et il revend le tout au prix de 2526.30. De ce total il faut soustraire les 176.39 de rabais, et nous concluons le total final pour ce travail de 2349.92. Son bénéfice est donc de 2349.92-1275.70 = 1074.22 (Ce chiffre n'apparait pas - Ce pourrait être une amélioration possible que de l'afficher).

Ceci est très important, et lacunaire : Si le menuisier décide d'augmenter ses prix, ou si un prix d'achat change, le menuisier va donc bien changer les prix au niveau des postes, mais, du coup, si on retourne plus tard dans un ancien travail, celui-ci verra ses valeurs changées, ce qui est évidemment inacceptable. Cette améioration de la base de données est à la fois complexe et inévitable.

Les prix affichés ne sont pas modifiables : ils sont issus directement de la table T_Poste (C'est le cumul des postes). On ne peut donc pas décider de vendre tout a coup plus cher que prévu quelque chose (Ou alors en imposant un rabais négatif...).

Les postes dans les travaux

Dans la partie du bas, il y a le sous formulaire F_TravailObjetPoste : Nous y inscrivons tous les postes qui vont être nécessaires à l'élaboration de cette bibliothèque en particulier :

Pourquoi de la bibliothèque et pas des 2 commodes ? Parce que dans le formulaire principal, nous sommes restés dans la bibliothèque (le curseur de la souris est encore dedans).

Si vous cliquez sur la commode, vous constaterez que le sous formulaire s'actualise automatiquement, et affiche alors les postes nécessaires à l'élaboration de ces commodes :

Pour fabriquer une seule des deux commodes commandées, il va donc falloir 5 glaces, 1 porte d'armoire, 1 pied carré (Etrange commode avec un seul pied ... ), et 1 barre transversale.

Dans les colonnes bleu ciel, sont indiqués les prix unitaires d'achat et de vente, et dans les colonnes bleu pâle, les totaux.

Tout en bas, vous avez les totaux des colonnes : . Une commode vaudra donc à l'achat 557 francs et à la vente 1102.80.

Ces chiffres sont repris dans le formulaire principal afin de pouvoir les multiplier par le nombre de commodes commandées :

.

Vous suivez toujours ?

Vous vous rappelez ?Au début de cette page quand nous parlions des objets qui contiennent des postes ? Si on prend la commode comme exemple, elle pouvait être composée de plein de postes :

Dans l'élaboration de ce travail, nous avons sélectionné une partie des postes possibles, mais pas tous, et nous en avons choisi une certaine quantité (dans l'objet du travail actuel : pas de pieds rectangulaires ni ronds, ni de poignée).

Et les heures de travail dans tout ça ???

Elles ne sont tout simplement pas comptées. On suppose que la marge entre le prix d'achat et de vente suffit à faire vivre notre menuisier. S'il voulait inclure les heures de travail, il suffirait de créer un nouveau poste appeléHeure de travail, dont le prix d'achat est à 0 et le prix de vente est à 80.00 (par exemple).

Ensuite, pour chaque objet existant, il faudra ajouter systématiquement le poste Heure de travail, afin que, dans chaque travail demandé, quel que soit l'objet commandé, il soit possible de sélectionner comme poste Heure de travail, et d'y inscrire le nombre nécessaire.

Essayez !

Evidemment, le fait d'être obligé de mettre le poste Heures de travail pour chaque objet est contraignant et malpratique : une amélioration de plus à apporter à cette base !

Calcul du total général

Passons au calcul des totaux généraux ! En bas à gauche, vous voyez 3 onglets : Cliquez sur Totaux : .

Il y en a pour un total de 2349.92. Nous allons octroyer un rabais global de 5%(117.50), encore en plus du premier rabais de 55% pour la bibliothèque, ce qui réduit la facture finale à 2232.42.

A ceci, ajoutons un taux de TVA de 7.5% (167.43), ce qui remonte la facture à 2399.85.

Il aurait été possible que le total n'ait pas été arrondi 5 centimes (2399.83) par exemple. Le montant arrondi sera alors affiché dans la dernière case en blanc sur fond bleu (Ici, c'est inutile).

Impression de la facture, du devis, d'une liste de référence ou d'un rappel

Imprimons cette facture, maintenant !

Cliquez sur l'onglet Impressions

Date de création du travail : Cette date est automatiquement insérée lors de la création de ce travail.

Ensuite, vous pouvez imprimer Un devis, une facture, un rappel ou une sommation de payer : ce sont toujours le même état qui sera ouvert, mais avec quelques différences dans les textes d'accompagnement, principalement en haut de la page.

Pour imprimer l'un ou l'autre de ces documents, cliquez sur la petite imprimante correspondante. La date d'impression sera alors automatiquement affichée, sans possibilité de la changer à la main.

Voici l'exemple d'une facture :

Liste de référence

 

 

La liste de référence est un document interne qui permet de commander éventuellement des pièces manquantes chez les fournisseur.

C'est aussi une liste à garder à proximité pour contrôler physiquement la présence de tous les éléments.

Imperfection : Le nom du fournisseur de chaque poste n'est pas indiqué.

Conclusion

Best of Gestion est, en l'occurrence une gestion de menuiserie. Mais quand on regarde de plus près, cette même base de données peut servir à commercialiser bien d'autres choses sans rapport avec la menuiserie!

Un magasin d'ordinateurs : Les ordinateurs (Les objets) sont aussi composés de postes : Ce ne sont pas des poignées ni des étagères, mais plutôt des cartes son, des cartes graphiques, des souris...

Un traiteur qui vend des plats cuisinés : Chaque plat est composé de différents ingrédients : Un objet (Mousse au chocolat) est composé aussi de postes (Lait, sucre, Oeufs...).

En fait, du moment qu'il s'agit d'objets composés de postes, tout est possible !

Si vous commercialisez des voitures, c'est différent ! Un Objet Voiture n'est composé que d'un seul Poste : Voiture !

Ainsi, utiliser cette base de données en l'état n'est pas très judicieux.. Quoiqu'on peut imaginer que l'objet "BMW 525" est composé d'une voiture, mais aussi de différentes options : GPS, peinture métallisée, Toit ouvrant...

Faites tous les tests que vous désirez ! L'idée est d'utiliser et analyser cette base de données. Vous êtes dans la peau d'une personne qui utilise une base de données conçue par quelqu'un d'autre. Par la suite, vous serez vous-même le concepteur, et vos utilisateurs seront les clients de votre base de données ! ... Vous constaterez alors à quel point on voit les choses différemment, en tant que concepteur ou utilisateur !

Si vous débutez avec Access, il est fort probable que certaines choses vous échappent, même si vous passez bien du temps à la disséquer ! C'est normal.

L'idée ici n'est pas de vous apprendre à faire la même chose en deux coups de cuillère à pot, mais plutôt de vous donner une idée du fonctionnement et de la forme de ce que pourrait être une base de données "professionnelle", et de vous inspirer.

Pour vous donner une idée de la valeur d'une telle base livrée clés en mains, en Suisse, ou en France, est d'environ 10'000 à 30'000 Euros, et demande un temps de développement de 50 à 150 heures, selon la complexité finale et l'expérience du développeur (Ne prenez pas mes chiffres au pied de la lettre, c'est une estimation à la louche)