IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

[démo] Gestion de stock avec les évènements de table


Sujet :

Contribuez

  1. #1
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 620
    Points : 56 857
    Points
    56 857
    Billets dans le blog
    40
    Par défaut [démo] Gestion de stock avec les évènements de table
    Bonjour le forum,

    on parle peu d’Access 2010 avec ses évènements de table (triggers) et pourtant…

    La démonstration s’appuie sur une gestion de stock (simplifiée) avec le schéma suivant volontairement dénormalisé avec le champ QtteStock:


    Le but est de tenir à jour le champ QtteStock suivant l’évènement produit dans la table des mouvements (insertion et/ou mise à jour). Comme nous interceptons les évènements sur TblMouvement grâce au mécanisme de triggers proposés par Access 2010, nous pouvons effectuer les saisies directement dans la table en mode "feuille de données".

    Partons du jeu suivant :


    Insérons une première entrée :


    On vérifie que la table des articles est mise à jour :


    Poursuivons avec quelques mouvements supplémentaires :

    Chaque insertion a bien été prise en compte.

    Que se passe-t-il si on insère une sortie de 100 scoubidous (zéro en stock) ?

    Avant d’insérer la ligne (évènement : avant modification), on teste si le mouvement est possible. S’il ne l’est pas, la ligne ne peut être validée et un message apparait.

    Testons la mise à jour d’un mouvement existant.
    Le mouvement idMouvement=5 était en fait une entrée de 50 pommes :


    Ah non, gouré ! Le mouvement idMouvement=5 était en fait une entrée de 50 scoubidous :


    Et puis modifions totalement la ligne idMouvement=5 :

    La mise à jour est OK dans tous les cas.

    Bien entendu, avant toute mise à jour, on teste si le mouvement est possible. Essayons en modifiant une dernière fois ce mouvement idMouvement=5 :


    Il reste le cas des suppressions de mouvements qui me pose encore quelques problèmes dans certains cas et qui n’est donc pas implémenté pour le moment.

    Ci-joint le fichier GestionStock.accdb.

    Un peu d’indulgence pour le code un peu cracra, je n’ai Access 2010 que depuis 15 jours mais le but était de montrer les nouvelles possibilités de programmation dans les évènements de table.

    Quoi que la mise au point et le déboguage des macros de données m’a semblé peu évidente, je pressens quand même que de nombreux évènements vont prochainement être interceptés de cette manière plutôt que par du VBA dans les évènements des formulaires.

    Et vous ?
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    En dehors du fait que je n'ai pas Access 2010 , merci pour cette petite démonstration d'une des nouveautés de cette version.

    Travaillant actuellement sur un logiciel de gestion de stock, je voudrais mettre un petit bémole, mais pas sur ta démonstration, mais sur le but.

    Tu utilises cet évènement pour mettre à jour une table qui te donnera l'état du stock du produit, hors cette information peut-être obtenue par la table des mouvements, elle est donc redondante, cela va à l'encontre de ce que l'on explique souvent dans la partie modélisation (où je te remercie pour ton excellente participation dans celui-ci).

    En résumant, même si l'exemple est parlant, il est pour moi à éviter dans la redondance d'infos.

    Philippe

  3. #3
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 620
    Points : 56 857
    Points
    56 857
    Billets dans le blog
    40
    Par défaut
    Bonsoir Philippe,

    en tant que normôlatre je ne peux qu'approuver ta remarque

    Citation Envoyé par f-leb Voir le message
    ... avec le schéma suivant volontairement dénormalisé avec le champ QtteStock:
    dénormalisation= redondance, risque d'incohérence etc...

    Toutefois dans la pratique, on trouve de temps en temps quelques entorses à la règle (comme le prix de l'article, le nom&adresse du client que l'on recopie dans la table des commandes). Je pense par exemple au cas où le traitement pour connaître l'état du stock s'avère coûteux en temps de calcul ou plus complexe encore avec la gestion FIFO etc....

    Je n'incite évidemment pas à dénormaliser mais quitte à le faire (calculs ou règles de gestion complexes), autant le faire en minimisant les risques d'incohérences. Je trouve que les évènements de table sont alors particulièrement adaptés pour gérer la redondance.

    Citation Envoyé par Philippe JOCHMANS
    ...même si l'exemple est parlant...
    C'est déjà ça

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Citation Envoyé par f-leb Voir le message
    Je pense par exemple au cas où le traitement pour connaître l'état du stock s'avère coûteux en temps de calcul ou plus complexe encore avec la gestion FIFO etc....
    Tu as raison

  5. #5
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 626
    Points : 726
    Points
    726
    Par défaut La gestion de stock
    Bonjour,


    mon fils fait un stage dans une société qui lui ont demandé une mini gestion de stock sous access et je suis tombé sur une base modèle de gestion de stock chez microsoft.
    A peu près la même chose que ce qui est proposé ici, une gestion de stock par mouvements.

    Je trouve cela pas mal car c'est dynamique, on peut revenir facilement sur un mouvement comme dans un journal de transactions.
    C'est certain qu'au niveau conception et mise en place c'est sportif.

    La responsable de la boite ou bosse mon fils à rien compris au mcd et lui a demandé de revenir sur un système tradi à cumul, mdr.

    a+

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    J'ai une petite question

    si on rajoute a la base de donnée que tu as fait un emplacement pour chaque article et qui se supprime a chaque foix que le stock soit = 0.

    comment on peut faire

    Merci.

Discussions similaires

  1. Réponses: 5
    Dernier message: 30/06/2015, 09h43
  2. Gestion des transactions avec les composants DOA
    Par lper dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/12/2008, 16h06
  3. [vb.net]Gestion des exceptions avec les web services
    Par mvr dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/12/2005, 22h41
  4. [wxpython] problème avec les événements souris
    Par kalimero dans le forum wxPython
    Réponses: 2
    Dernier message: 13/11/2005, 15h42
  5. [HTML] Probleme avec les événement OnChange et OnClick
    Par G_Kill dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 04/05/2005, 16h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo