Bonjour
j ai un table Nommé achat_inst contient les achats en quantités de quelque articles de stock et une autre table Nommé stock contenant les quantités de tout les articles de stock .
le bute est de mettre à jours les quantités de stock après la confirmation d'achat selon le code de chaque article ( code article est le Clé Primaire).
j ai essayé avec le code si dessous la problème que ce code ne prend en charge que la première ligne (1 er article ) de table achat_inst pour mettre à jours le table stock et laisse la suite des lignes ( la suite des articles ) .
code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
   Dim cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\agrimed.mdb")
        cn.Open()
        Dim cmd As New OleDbCommand("select * from achat_inst", cn)
        Dim Adaptateur As New OleDbDataAdapter(cmd)
        Dim MonDataSet As New DataSet
        Adaptateur.Fill(MonDataSet, "achat_inst")
        For Each Ligne As DataRow In MonDataSet.Tables("achat_inst").Rows()
            Dim cmdb As New OleDbCommand("select [Code Article] from achat_inst", cn)
            Dim cmdd As New OleDbCommand("select [Quantité] from achat_inst where [Code Article]='" & cmdb.ExecuteScalar.ToString & "'", cn)
 
            Dim cmdc As New OleDbCommand("UPDATE Stock set [Qte en stock] = [Qte en stock] + '" & CInt(cmdd.ExecuteScalar.ToString) & "' where [Code Article] =@c1", cn)
            With cmdc.Parameters
                .Add("@c1", OleDbType.Char).Value = cmdb.ExecuteScalar.ToString
            End With
            cmdc.ExecuteScalar()
 
        Next