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

VBA Access Discussion :

Actualisation automatique du Stock dans la table T_Produits


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Angola

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2011
    Messages : 13
    Par défaut Actualisation automatique du Stock dans la table T_Produits
    * Bonjour *

    J'ai créé une base de données access, j'ai trois tables: T_produits(Stock), T_Vente(Qté), T_Réceptions(Qté):

    Je voudrais que le Champs "Stock" dans la table T_Produits soit automatiquement actualisé.

    Lorsque(Chaque fois) que le produit est vendu dans la table T_Ventes il y aura réduction(de la Qté vendue) du stock dans la table t_Produits.

    Lorsque(Chaque fois) que le produit est réceptonné dans la table T_Ventes il y aura augumentation(de la Qté réçue) du stock dans la table T_Produits.

    Pouriez-vous me dire comment faire pour réussir cet automatisme ?

    Rui Mateus

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Et pourquoi vouloir stocker une donnée changeant en permanence.
    Une requête au moment opportun ne suffit pas?
    La conception des tables n'est peut être pas judicieuse. IL y a pas mal de sujets sur ce thème sur le forum.

    Sinon il faut passer par les requêtes de mise à jour.

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


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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 251
    Billets dans le blog
    48
    Par défaut
    Bonjour,

    on peut commencer par écrire une procédure de mise à jour du stock avec une requête SQL UPDATE, du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Public Sub MAJStock(idProduit As long, qtte as integer)
    Dim strSQL as String
    On Error Goto Err_MAJStock
     
    strSQL = "UPDATE T_Produit SET stock=stock+" & qtte
    strSQL = strSQL & " WHERE idProduit=" & idProduit & ";" 
     
      currentdb.execute strSQL, dbFailOnError
     
    exit sub
     
    Err_MAJStock:
      MsgBox Err.description, vbCritical, "Erreur n°" & Err.number
    End Sub
    Procédure à lancer sur les bons évènements de ton formulaire (qtte<0 ou qtte>0 selon décrément/incrément du stock).

    [EDIT] ...et GAYOT qui était passé par là et que je salue au passage [/EDIT]

  4. #4
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Angola

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2011
    Messages : 13
    Par défaut
    La table T_produits à cet éffet contient les Champs suivants: ProdID, Description(nom du produit) et Stock.
    Ces champs seront enregistrés une seule fois pendant le premier inventaire.
    Le champs ProdID est numéro automatique, le champs Description sera actualisé manuellement en cas de récéption d'un nouveau produit.
    Après le premier inventaire le champs stock est mouvementé par les entrées et les sorties à partir des ventes et réceptions.
    Les requêtte ne servirons que pour le suivi des sorties et des entrées.

    NB.Si le magasinier enregistre un produit dans les tables T-Ventes et T-Réceptions et le produit ne fugure pas dans la table T_Produit il reçoit un message d'erreur.

    Fabien le code est à lancer dans l'environnement VB ou dans un macros ?

    pour les entées je tape le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     strSQL = "UPDATE T_Produit SET stock=stock+" & qtte
    strSQL = strSQL & " WHERE idProduit=" & idProduit & ";"
    Et pour les sorties fe tape lecode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     strSQL = "UPDATE T_Produit SET stock=stock-" & qtte
    strSQL = strSQL & " WHERE idProduit=" & idProduit & ";" ?
    Merci de tes précisions pour que je les implémentes rapidement.

    Ruimateus

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


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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 251
    Billets dans le blog
    48
    Par défaut
    Re,

    avec des parenthèses autour de qtte si tu préfères:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    strSQL = "UPDATE T_Produit SET stock=stock + (" & qtte & ")"
    strSQL = strSQL & " WHERE idProduit=" & idProduit & ";"
    la procédure MAJStock peut être appelée aussi bien pour les entrées (qtte>0) et les sorties du stock (qtte<0).

    La procédure est à copier/coller (adapter les noms des tables et champs) dans un module VBA (ALT+F11 puis Insertion>Module).
    Pour la tester, dans la fenêtre d’exécution (CTRL+G), tu tapes par exemple:

    Pour 10 entrées du produit n°1

    Pour 5 sorties du produit n°1

    Constater les modifications dans la table des produits.

    Il faut maintenant appeler la procédure sur procédure évènementielle de ton formulaire de création des mouvements d’entrée/sortie (ou réception/vente). Tu as bien un formulaire pour ça ?

  6. #6
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Angola

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2011
    Messages : 13
    Par défaut
    En appliquant le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Option Compare Database
     
    strSQL = "UPDATE T_Produits SET stock=stock + (" & Qte & " ")
    strSQL = strSQL & " WHERE T_Receptions.ProdID=" & T_Produits.ProdIDid & ";"
    strSQL = "UPDATE T_Produits SET stock=stock - (" & Qte & ")"
    strSQL = strSQL & " WHERE T_Ventes.ProdID=" & T_Produits.ProdIDid & ";"
     
    Sub Actualiserstock()
    strSQL = "UPDATE T_Produits SET stock=stock + (" & Qte & ")"
    strSQL = strSQL & " WHERE T_Receptions.ProdID=" & T_Produits.ProdIDid & ";"
    strSQL = "UPDATE T_Produits SET stock=stock - (" & Qte & ")"
    strSQL = strSQL & " WHERE T_Ventes.ProdID=" & T_Produits.ProdIDid & ";"
     
    End Sub
    J'obtien le message d'erreur:

    Erreur de compilation.

    Attendu: fin d'instruction

    Ruimateus

Discussions similaires

  1. Requête utilisant une formule stockée dans une table
    Par alexiisme dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 23/01/2008, 07h01
  2. Afficher une image stockée dans une table Oracle
    Par paradeofphp dans le forum ASP.NET
    Réponses: 1
    Dernier message: 08/06/2007, 08h03
  3. [Delphi 6] Récupération d'une image stocké dans une table
    Par bchass dans le forum Bases de données
    Réponses: 4
    Dernier message: 20/12/2006, 14h48
  4. Remplir automatiquement un champ dans une table
    Par en_stage dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 03/08/2006, 20h57
  5. test d'une valeur stocké dans une table
    Par EssaiEncore dans le forum ASP
    Réponses: 3
    Dernier message: 18/02/2005, 11h39

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