IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

problème de Mise à jour


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    chargé d'affaire commercial
    Inscrit en
    Mai 2013
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : chargé d'affaire commercial
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2013
    Messages : 45
    Points : 55
    Points
    55
    Par défaut problème de Mise à jour
    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

  2. #2
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 421
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjours,
    where [Code Article] in ( select [Code Article] from achat_inst)"

  3. #3
    Membre du Club
    Homme Profil pro
    chargé d'affaire commercial
    Inscrit en
    Mai 2013
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : chargé d'affaire commercial
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2013
    Messages : 45
    Points : 55
    Points
    55
    Par défaut mauvais MAJ
    merci
    le code a fonctionné mais il mis à jour juste le premier article d une valeur juste pour les autres articles fait la somme de toute les quantités de table achat_inst et le met à jours leurs quantités de la valeur somme

    j' ai créer ce code après un grande effort a fonctionné bien mais il est trop long merci ci vous avez un code réduit :
    1 - tout d’abord j ai crée un autre colonne appelai N° dans achat_inst qui ajoute +1 à sa valeur pour chaque nouveau article

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
            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")
            Dim a, b, c As Integer
            Dim cmdz As New OleDbCommand("select [N°] from achat_inst", cn)
            a = cmdz.ExecuteScalar.ToString
     
            For Each Ligne As DataRow In MonDataSet.Tables("achat_inst").Rows()
                Dim cmdf As New OleDbCommand("select [N°] from achat_inst", cn)
                If cmdf.ExecuteScalar.ToString = a Then
     
                    Dim cmdb As New OleDbCommand("select [Code Article] from achat_inst where [N°]=@c1", cn)
                    With cmdb.Parameters
                        .Add("@c1", OleDbType.Char).Value = a
                    End With
                    Dim cmdv As New OleDbCommand("select [Quantité] from achat_inst where [N°]=@c1", cn)
                    With cmdv.Parameters
                        .Add("@c1", OleDbType.Char).Value = a
                    End With
                    Dim cmdc As New OleDbCommand("UPDATE Stock set [Qte en stock] = [Qte en stock] +'" & cmdv.ExecuteScalar.ToString & "' where [Code Article]=@c1", cn)
                    With cmdc.Parameters
                        .Add("@c1", OleDbType.Char).Value = cmdb.ExecuteScalar.ToString
                    End With
                    cmdc.ExecuteScalar()
    ' Archiver cette Achat :
                    Dim cmdh As New OleDbCommand("select [Code Article],[Quantité],[Désignation],[Prix Unitaire HT],[Remise],[TVA],[NET_HT],[MONTANT_TVA],[Net_TTC] from achat_inst  where [N°]=@l1", cn)
                    With cmdh.Parameters
                        .Add("l1", OleDbType.Char).Value = a
                    End With
                    Dim dra As OleDbDataReader = cmdh.ExecuteReader
                    Do While dra.Read
     
                        Dim cmdr As New OleDbCommand("INSERT INTO achat_detaile ([Type De Document],[Numero De Document],[Date D'achat],[Fournisseur],[Code Fournisseur],[Code Article],[Désignation],[Quantité],[Prix UHT],[Remise],[TVA],[NET_HT],[Montant TVA],[NET_TTC]) values( '" & Label30.Text & "','" & TextBox10.Text & "','" & CDate(DateTimePicker1.Text) & "','" & ComboBox3.Text & "','" & ComboBox2.Text & "','" & dra.GetString(0) & "', '" & dra.GetString(2) & "','" & dra.GetValue(1) & "','" & dra.GetValue(3) & "','" & dra.GetValue(4) & "','" & dra.GetValue(5) & "','" & dra.GetValue(6) & "','" & dra.GetValue(7) & "','" & dra.GetValue(8) & "')", cn)
                        cmdr.ExecuteScalar()
                    Loop
     
                    b = a + 1
                    a = 0
     
     
                Else
     
                    Dim cmdb As New OleDbCommand("select [Code Article] from achat_inst where [N°]=@c1", cn)
                    With cmdb.Parameters
                        .Add("@c1", OleDbType.Char).Value = b
                    End With
                    Dim cmdv As New OleDbCommand("select [Quantité] from achat_inst where [N°]=@c1", cn)
                    With cmdv.Parameters
                        .Add("@c1", OleDbType.Char).Value = b
                    End With
                    Dim cmdc As New OleDbCommand("UPDATE Stock set [Qte en stock] = [Qte en stock] +'" & cmdv.ExecuteScalar.ToString & "' where [Code Article]=@c1", cn)
                    With cmdc.Parameters
                        .Add("@c1", OleDbType.Char).Value = cmdb.ExecuteScalar.ToString
                    End With
                    cmdc.ExecuteScalar()
    ' Archiver cette Achat :
                    Dim cmdh As New OleDbCommand("select [Code Article],[Quantité],[Désignation],[Prix Unitaire HT],[Remise],[TVA],[NET_HT],[MONTANT_TVA],[Net_TTC] from achat_inst  where [N°]=@l1", cn)
                    With cmdh.Parameters
                        .Add("l1", OleDbType.Char).Value = b
                    End With
                    Dim dra As OleDbDataReader = cmdh.ExecuteReader
                    Do While dra.Read
     
                        Dim cmdr As New OleDbCommand("INSERT INTO achat_detaile ([Type De Document],[Numero De Document],[Date D'achat],[Fournisseur],[Code Fournisseur],[Code Article],[Désignation],[Quantité],[Prix UHT],[Remise],[TVA],[NET_HT],[Montant TVA],[NET_TTC]) values( '" & Label30.Text & "','" & TextBox10.Text & "','" & CDate(DateTimePicker1.Text) & "','" & ComboBox3.Text & "','" & ComboBox2.Text & "','" & dra.GetString(0) & "', '" & dra.GetString(2) & "','" & dra.GetValue(1) & "','" & dra.GetValue(3) & "','" & dra.GetValue(4) & "','" & dra.GetValue(5) & "','" & dra.GetValue(6) & "','" & dra.GetValue(7) & "','" & dra.GetValue(8) & "')", cn)
                        cmdr.ExecuteScalar()
                    Loop
     
                    b = b + 1
                End If
     
            Next

  4. #4
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 421
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjour, et comme ça!
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Stock INNER JOIN achat_inst ON Stock.[Code Article] = achat_inst.[Code Article] SET Stock.[Qte en stock] = [Quantité]+[Qte en stock];

Discussions similaires

  1. Probleme de mise à jour de données
    Par sylvanians dans le forum Forms
    Réponses: 1
    Dernier message: 23/05/2006, 12h15
  2. Réponses: 10
    Dernier message: 28/12/2005, 21h52
  3. Probleme de mise à jour et de modification d'une base
    Par flambo88 dans le forum Requêtes
    Réponses: 17
    Dernier message: 07/12/2005, 14h27
  4. Probleme de mise à jour de mes Edit Box
    Par bibi_64 dans le forum MFC
    Réponses: 2
    Dernier message: 02/11/2005, 22h49
  5. probleme de mise à jour de BD
    Par k_boy dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 30/05/2004, 21h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo