Restaurer la quantité commandée après suppréssion commande

Bonjour ; j'ai une base de donnée qui gère la gestion des commandes et j'ai une formulaire qui présente la liste des commande passées par les clients et j'ai un bouton supprimé qui permet de supprimer une commande de la liste ; ce que je souhaite faire c'est de pouvoir restaurer la quantité supprimée dans le stock du produit concerné ; actuellement la commande est supprimée mais sans conséquence sur la table PRODUIT au niveau du stock du produit supprimé
par ailleurs j'ai aussi une table MOUVEMENT qui retrace toutes les Operations effectuées c'est a dire les ventes et les achats effectués ; est ce que si une commande est supprimée ; faut il aussi supprimer la ligne de cette opération dans la table MOUVEMENT
jai besoins de vos avis et suggestions
merci
voici les lignes de code pour la suppression d'une commande

Private Sub btnSupprimerCommande_Click()
Dim res As Integer
Dim r2 As Boolean
Dim db As Database
Dim req As String
res = MsgBox("Voulez vous Vraiment supprimer la commande [" & Me.CodeCommande & "]", vbYesNo + vbInformation, "Confirmation de suppression")
 If (res = vbYes) Then
    Set db = CurrentDb
    req = "DELETE * FROM Commandes WHERE idCommande=" & Me.idCommande
    db.Execute (req)
    If (db.RecordsAffected > 0) Then
        MsgBox "La Commande  a été supprimée", vbInformation, "Commandes"

        DoCmd.Requery
    Else
        MsgBox "impossible de supprimer la commande [" & Me.CodeCommande & "]", vbInformation, "Commandes"
    End If

 End If
End Sub

23 réponses

  • Votes
  • Date
  • Date décroissante
Résumé de la discussion

Un problème central porte sur la suppression d'une commande dans une base de données de gestion des commandes et du stock, la suppression actuelle n'imputant pas le réapprovisionnement ni l'historique dans MOUVEMENT. Les contributions évoquent de mettre à jour le stock automatiquement lors de la suppression et de décider si la ligne dans MOUVEMENT doit être effacée. D'autres analyses portent sur la validité des variables comme QteCommande, la structure des tables et envisagent une commande négative plutôt que supprimée pour préserver l'historique. En l'état, le stock ne se met pas à jour lors des suppressions et le fil explore des méthodes comme restauration, suppression limitée ou déclencheurs pour préserver l'historique.

Bobot (l’IA à votre service)
  1. Est ce que je peux avoir un lien pour mieux comprendre cette notion, ou bien la discussion ne peut plus continuer
    1. Contributeur
      Je n'ai aucune idée de où trouver la quantité commandée.
      Il faudrait demander à celui qui a conçu cette application.
  2. Je ne sais vraiment pas comment mettre la bonne valeur dans la variable, je pense que là valeur se trouve dans une table
    1. Ça vient du fait que la variable ne contient pas la quantité commandée par le client
      1. Contributeur
        Comment mettre dans la variable la bonne valeur? Où trouver cette valeur?
    2. Parce que la valeur du paramètre
      QteCommande
      est 0
      1. Contributeur
        D'où vient cette valeur 0?
    3. Oui effectivement,le stock ne change pas
      Que faut-il faire d'autre pour arriver à ma fin ?
      1. Contributeur
        Pourquoi le stock ne change-t-il pas?
    4. Oui c'est fait et la
      QteCommande
      affiche 0
      Voici le message :
      msgbox("la valeur de la quantité commandee : "& QteCommande)
      1. Contributeur
        Ce qui explique que le stock du produit ne change pas.
    5. Comment cela peut être examiné à partir de la MsgBox
      1. Contributeur
        msgbox est une instruction que tu peux ajouter dans le code pour afficher ce que tu souhaites afficher.
    6. j'avais dit que le code n'affiche pas de message d'erreur ; donc il n'affiche pas de valeur
      1. Contributeur
        Il existe plusieurs techniques pour examiner la valeur d'une variable même quand il n'y a pas d'erreur.
        La plus simple à mettre en oeuvre, c'est msgbox.
    7. Je pense qu'il faut placer le curseur de la souris sur la variable dans le code et voir la valeur affichée par cette variable
      Est ce c'est juste ou pas ?
      1. Contributeur
        Et que vois-tu comme valeur pour cette variable?
    8. est ce que je avoir un lien pour mieux comprendre la notion de variable
      merci
      1. Contributeur
        QteCommande
        est une variable.
        Connais-tu des techniques pour examiner ce que contient cette variable?
    9. Examiner la réalité, est ce que ça veut dire que ce n'est pas faisable avec ce fichier
      1. Contributeur
        D'un coté, il y a ce que tu penses, ce que tu as écrit en #14.

        D'un autre coté, il y a la réalité, ce que contient le fichier.

        En examinant le fichier, où vois-tu que la variable contient la quantité?
    10. Quelle peut être la réalité ? Qu'est ce que vous voulez dire
      1. Contributeur
        Examine la réalité, ton fichier, ton code, le contenu de tes variables.
        Que contient
        QteCommande
        ?
    11. QteCommande
      c'est la quantité commandée par un client dans une ligne de commande pour un produit
      1. Contributeur
        Tu expliques ce que tu souhaites, tu n'examines pas la réalité.
    12. J'ai essayé d'ajouter une requête pour la mise à jour du stock mais il n'affiche aucun message d'erreur mais le stock ne se met pas à jour ; voici ce que jai pu faire :

      Private Sub btnSupprimerCommande_Click()
      Dim res As Integer
      Dim ReqUpdateQTE As String
      Dim db As Database
      Dim req As String
      Dim IdProduit As Integer
      Dim QteCommande As Integer
      
      res = MsgBox("Voulez vous Vraiment supprimer la commande [" & Me.CodeCommande & "]", vbYesNo + vbInformation, "Confirmation de suppression")
       If (res = vbYes) Then
          Set db = CurrentDb
          req = "DELETE * FROM Commandes WHERE idCommande=" & Me.idCommande
          db.Execute (req)
          
          If (db.RecordsAffected > 0) Then
              MsgBox "La Commande  a été supprimée", vbInformation, "Commandes"
          ReqUpdateQTE = "UPDATE Produit SET QteStock=QteStock + " & QteCommande & " WHERE idProduit=" & IdProduit
              db.Execute ReqUpdateQTE
              DoCmd.Requery
          Else
              MsgBox "impossible de supprimer la commande [" & Me.CodeCommande & "]", vbInformation, "Commandes"
          End If
          
       End If
      End Sub
      
      1. Contributeur
        as-tu analysé ce que contient
        QteCommande
        ?
    13. Salut , est ce que vous pouvez me donner des orientations
      Merci
      1. Contributeur
        Il faut analyser ce qui se fait quand la commande est créée, et défaire tout cela.
    14. Je l'ai conçu à partir de plusieurs documentations et la propriété RecordAffected de l'objet Database permet de tester l'instruction SQL si elle a été bien exécuter ou pas
      En effet si elle est bien exécutée la ligne de commande sélectionnée est supprimée
      1. Ok , en effet actuellement , la lignes de commande dans les tables commandes et detailcommandes sont bien supprimées sauf que ce n'est pas le cas dans la table mouvement et que le stock du produit ne dimunie pas
        Est ce que on peut créé une macro ou tout autre chose et la lier au bouton supprimé
        1. Contributeur
          Il faut analyser ce qui se fait quand la commande est créée, et défaire tout cela.
          Qui a écrit cette application, qui peut l'analyser?
      2. Contributeur
        Il faut analyser ce qui se fait quand la commande est créée, et défaire tout cela.
        Afin d'augmenter le stock dans la table produit et de supprimer les lignes de commande dans les tables commande detailcommande et mouvement.
        • 1
        • 2