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

Oholabi12345 Messages postés 498 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
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

A voir également:

23 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
En lisant cela, je me demande si les tables sont bien structurées.
Je me demande aussi s'il n'est pas préférable de créer une commande "négative", plutôt que de supprimer la commande.
Cela éviterait de créer du code pour la suppression, et de perdre l'historique.
Sinon, il faut analyser ce qui se fait quand la commande est créée, et défaire tout cela.
0
Oholabi12345
 
Tout le programme marche très bien , quand on achète et on vend le stock est correct et même en cas de corrections les stocks sont auusi correctes sauf en cas de suppression de la commande sinon les tables sont bien structurées
0
Oholabi12345
 
Quand le client passe une commande , le stock dimunie dans la table produit et une ligne de commande est créée dans les tables commande detailcommande et mouvement
Je veux que la suppression se fasse dans le configuration actuelle c'est à dire à partir du bouton supprimé dans la liste des commandes
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
Il suffit alors d'augmenter le stock dans la table produit et de supprimer les lignes de commande dans les tables commande detailcommande et mouvement.
0
Oholabi12345
 
Je ne comprends pas la suggestion
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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.
0
Oholabi12345
 
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é
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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?
0
Oholabi12345
 
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
0
Oholabi12345
 
Salut , est ce que vous pouvez me donner des orientations
Merci
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
Il faut analyser ce qui se fait quand la commande est créée, et défaire tout cela.
0
Oholabi12345 Messages postés 498 Date d'inscription   Statut Membre Dernière intervention   1
 
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
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
as-tu analysé ce que contient
QteCommande
?
0
Oholabi12345 Messages postés 498 Date d'inscription   Statut Membre Dernière intervention   1
 
QteCommande
c'est la quantité commandée par un client dans une ligne de commande pour un produit
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
Tu expliques ce que tu souhaites, tu n'examines pas la réalité.
0
Oholabi12345
 
Quelle peut être la réalité ? Qu'est ce que vous voulez dire
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
Examine la réalité, ton fichier, ton code, le contenu de tes variables.
Que contient
QteCommande
?
0
Oholabi12345
 
Examiner la réalité, est ce que ça veut dire que ce n'est pas faisable avec ce fichier
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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é?
0
Oholabi12345 Messages postés 498 Date d'inscription   Statut Membre Dernière intervention   1
 
est ce que je avoir un lien pour mieux comprendre la notion de variable
merci
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
QteCommande
est une variable.
Connais-tu des techniques pour examiner ce que contient cette variable?
0
Oholabi12345 Messages postés 498 Date d'inscription   Statut Membre Dernière intervention   1
 
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 ?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
Et que vois-tu comme valeur pour cette variable?
0
Oholabi12345 Messages postés 498 Date d'inscription   Statut Membre Dernière intervention   1
 
j'avais dit que le code n'affiche pas de message d'erreur ; donc il n'affiche pas de valeur
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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.
0
Oholabi12345 Messages postés 498 Date d'inscription   Statut Membre Dernière intervention   1
 
Comment cela peut être examiné à partir de la MsgBox
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
msgbox est une instruction que tu peux ajouter dans le code pour afficher ce que tu souhaites afficher.
0
Oholabi12345 Messages postés 498 Date d'inscription   Statut Membre Dernière intervention   1
 
Oui c'est fait et la
QteCommande
affiche 0
Voici le message :
msgbox("la valeur de la quantité commandee : "& QteCommande)
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
Ce qui explique que le stock du produit ne change pas.
0
Oholabi12345 Messages postés 498 Date d'inscription   Statut Membre Dernière intervention   1
 
Oui effectivement,le stock ne change pas
Que faut-il faire d'autre pour arriver à ma fin ?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
Pourquoi le stock ne change-t-il pas?
0
Oholabi12345 Messages postés 498 Date d'inscription   Statut Membre Dernière intervention   1
 
Parce que la valeur du paramètre
QteCommande
est 0
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
D'où vient cette valeur 0?
0
Oholabi12345 Messages postés 498 Date d'inscription   Statut Membre Dernière intervention   1
 
Ça vient du fait que la variable ne contient pas la quantité commandée par le client
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
Comment mettre dans la variable la bonne valeur? Où trouver cette valeur?
0