Mettre a jour un champ

Signaler
Messages postés
87
Date d'inscription
vendredi 21 août 2020
Statut
Membre
Dernière intervention
22 septembre 2020
-
Messages postés
12291
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 septembre 2020
-
Salut , je souhaite mettre à jour le champ quantitestock de la table PRODUIT dès que le champ quantitesortie de la table SORTIE est saisi
nous disposons de deux formulaires ; un formulaire principal (F_SORTIEMATERIEL) et un sous formulaire(F_DETAILSORTIE) et les deux basés sur des requêtes
voici le lien de ma base de données:
https://www.cjoint.com/c/JIqw6Wxa1xo
si vous m'avez compris ; j'attends une aide
merci d'avance

2 réponses

Messages postés
12291
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 septembre 2020
694
bonjour,
il est recommandé, autant que possible, d'éviter de faire cela.
n'est-il pas possible de ne pas avoir de champ quantitestock dans la table PRODUIT, et de plutôt utiliser une requête pour calculer le stock?
Messages postés
87
Date d'inscription
vendredi 21 août 2020
Statut
Membre
Dernière intervention
22 septembre 2020

merci deja ; vous pensez donc que le champ quantitestock devrait être dans quelle table ? sinon comment le stock pourrait être reccuperé dans le sous formulaire F_DETAILSORTIE de sorte que si le produit est choisi et que la quantitesortie est saisie on puisse avoir le stock (quantitestock)
je souhaiterais que la table PRODUIT(idproduit ; designation ;type ;quantitestock ) soit traité avec ma logique
merci
Messages postés
12291
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 septembre 2020
694 >
Messages postés
87
Date d'inscription
vendredi 21 août 2020
Statut
Membre
Dernière intervention
22 septembre 2020

je suggère de n'avoir de champ quantitestock dans aucune table.
je suggère, quand il est nécessaire de connaitre le stock, de le calculer à partir des entrées et des sorties.
Messages postés
87
Date d'inscription
vendredi 21 août 2020
Statut
Membre
Dernière intervention
22 septembre 2020

donc a chaque fois qu'on aurait besoin de faire une sortie on irait consulter la requête ; non je ne pense pas que cela soit commode selon la demande de l'utilisateur ; je pense doit rester dans la logique de cette analyse ; en effet je pense que nous devons créer une requete UPDATE sur l’évènement mise a jour du champ (quantitesortie) pour résoudre ce problème ; jai essayé en vba mais il m'affiche un bug; vous pouvez le consulter sur le lien

merci
Messages postés
12291
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 septembre 2020
694 >
Messages postés
87
Date d'inscription
vendredi 21 août 2020
Statut
Membre
Dernière intervention
22 septembre 2020

bien sûr que le stock calculé est négatif, puisque il y a une table avec les sorties, et pas de table avec les entrées.

je ne vois pas de champ stockentre dans la table PRODUIT.
tu n'as pas expliqué que tu avais décidé d'utiliser le champ QuantiteStock de la table PRODUIT pour enregistrer le total des entrées pour chaque produit.
penses-tu que nous puissions le deviner? nous pouvons lire ce que tu écris, pas entendre ce que tu penses.

dans ce cas-là, je suggère de faire ainsi:
- créer une requête qui calcule le stock pour chaque produit
- utiliser cette requête dans la formule avec SomDom
Messages postés
87
Date d'inscription
vendredi 21 août 2020
Statut
Membre
Dernière intervention
22 septembre 2020
>
Messages postés
12291
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 septembre 2020

Bonsoir ; j'ai enfin crée une table ENTREE et une autre DETAILENTREE enfin de saisir les Entrées et comme cela la table PRODUIT servira à saisir les nouveaux produits ; enfin est ce que les tables PRODUITS ; DETAILENTRE et DETAILSORTIE pourraient servir à calculer le Stock pour chaque produit ; j'ai donc crée la REQSOLDE ; voyez si elle est correcte
voici le lien : https://www.cjoint.com/c/JIvwIqgkbtU
merci
Messages postés
12291
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 septembre 2020
694 >
Messages postés
87
Date d'inscription
vendredi 21 août 2020
Statut
Membre
Dernière intervention
22 septembre 2020

cela me semble bien.
comme tu vois, cela ne te donne cependant pas le stock pour tous les produits.
tu peux corriger la requête soit en remplaçant INNER par LEFT dans la source SQL de la requete, soit en modifiant les propriétés des relations entre les tables.
Messages postés
12291
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 septembre 2020
694
ceci ne donnera pas de message d'erreur:
Option Compare Database
Option Explicit

Private Sub QteSortie_AfterUpdate()
Dim ReqUpdateQte As String
ReqUpdateQte = "Update PRODUIT SET QUANTITESTOCK = QUANTITESTOCK - " & Me.QteSortie & " WHERE IdProduit=" & Me.IdProduit
CurrentDb.Execute ReqUpdateQte
End Sub
Messages postés
87
Date d'inscription
vendredi 21 août 2020
Statut
Membre
Dernière intervention
22 septembre 2020
>
Messages postés
12291
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 septembre 2020

Merci le code marche parfaitement, je vous reviens pour un autre code au cas ou apres validation d'une sortie ,on se rend compte d'une erreur de saisie Dans le champ quantitesortie , comment faire la modification du champ saisie et obtenir le bon resultat