Bonjour,
Je vous explique un peu le problème que je rencontre actuellement sur mon projet VB de gestion de stock.
J'ai 4 tables :
- Entrée produit
- Stock
- Produit
- Commande Client
De mes 4 tables j'ai créé un Dataset "gestion_stockDataset" avec mes 4 table adapter de cette façon :
Voici ma requête SQL qui va chercher les caractéristiques d'un produit :
SELECT Code_produit, Catégorie, Fournisseur
FROM produit
WHERE (Code_produit = ?)
c'est à dire que quand je rentre un produit quelconque ses caractéristiques s'affichent dans des Textbox (Résolu dans un précédent Forum)
Mon problème vient du fait que je n'arrive pas à faire correspondre la quantité ajouté (table entrée produit) avec la quantité entrée (table stock).
De la même manière avec la quantité commandee (table commande client) avec la quantité sortie (table stock)
J'ai eu l'idée de faire une jointure de ces trois tables (stock, entrée produit et commande client) :
a la fin de ma requête je veut que seul les dernier enregistrement (MAX(ID)) s'ajoute dans la table stock.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT stock.Code_produit, stock.Categorie, stock.Fournisseur, stock.Quantite_entree, stock.Quantite_sortie, stock.Quantite_en_stock FROM stock JOIN entree_produit ON entree_produit.Code_produit = stock.Code_produit AND entree_produit.Quantite_ajoutee = stock.Quantite_entree JOIN commande_client ON commande_client.Code_produit = stock.Code_produit AND commande_client.Quantite_commandee = stock.Quantite_sortie WHERE stock.Quantite_entree = stock.Quantite_entree + entree_produit.Quantite_ajoutee AND stock.Quantite_sortie = stock.Quantite_sortie + commande_client.Quantite_commandee AND entree_produit.ID =(SELECT MAX(ID) FROM entree_produit entree_produit_1 WHERE (Code_produit = ?))
D'après le générateur de requête, cette requête n'a pas de faute mais ne fonctionne donc pas.
Cette requête s'appelle FillBy :
J'ajoute donc cette instruction dans l'évènement click d'un bouton CONSULTER.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Me.Relation_stockTableAdapter.FillBy(Me.Gestion_stockDataSet.relation_stock, ComboBox1.Text)
Lorsque j'enregistre une commande, le chiffre entrée dans la case quantité commandee doit donc s'ajouter à la quantité sortie de ma table stock.
Voilà donc mon problème.
Si vous avez des questions n'hésitez surtout pas à me les poser.
Je sais pas si j'ai été assez clair.
Merci d'avance pour vos réponses.
Partager