Restaurer la quantité commandée après suppréssion commande
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
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
- 1
- 2
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.
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
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. -
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
-
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 -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
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. -
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é -
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 -
-
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 -
QteCommande
c'est la quantité commandée par un client dans une ligne de commande pour un produit -
-
-
est ce que je avoir un lien pour mieux comprendre la notion de variable
merci -
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 ? -
j'avais dit que le code n'affiche pas de message d'erreur ; donc il n'affiche pas de valeur
-
Comment cela peut être examiné à partir de la MsgBox
-
Oui c'est fait et la
QteCommande
affiche 0
Voici le message :msgbox("la valeur de la quantité commandee : "& QteCommande) -
Oui effectivement,le stock ne change pas
Que faut-il faire d'autre pour arriver à ma fin ? -
-
Ça vient du fait que la variable ne contient pas la quantité commandée par le client
- 1
- 2