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 :

mise à jours du plusieurs donnés d une bdd a seul commande [Débutant]


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 mise à jours du plusieurs donnés d une bdd a seul commande
    Bonjour:
    j ai une facture d achat F( provenant d une BD F) contient un ensemble d achat des articles dont le clé primaire est le code article et un stock ( provenant d un BD S ) je veut mettre a jours le stock après la saisie de la facture F la problème je trouve pas le code ( OleDbCommand ) qui va vérifier tout les codes d ' articles saisie dans la facture F Un par un et le comparer au codes d'articles de stock s et mettre a jours le stock et passe au code d article suivant et répétez l action jusqu’à la fin d articles saisie dans la facture F
    NB j utilise la connexion ADO.net
    Merci

  2. #2
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Essayez de faire un effort de rédaction, votre message est à peine compréhensible.

    Déjà, plusieurs choses :
    - Vous parlez d'une base "F" et d'une base "S". Êtes-vous sur que ce sont des bases distinctes, et non des tables à l'intérieur d'une même base ?
    - Ce que vous cherchez à faire peut se traduire par autant de SELECT que d'articles vérifiant dans la table S qu'il existe bien une ligne pour l'article avec une quantité supérieure ou égale à celle de la ligne de facture.
    - Vous parlez de facture d'achat... pourquoi vérifier le stock ? Généralement c'est plutôt à la vente qu'on se soucie du stock... et j'ai envie de dire, si on a assez de stock, à la limite on ne repasse pas une commande d'achat !
    - Votre application est-elle mono-utilisateur ? Si vous devez gérer des accès concurrents, alors il faut absolument vous tourner vers des transaction et des verrous, afin de ne pas vous retrouver avec un stock dispo au moment de la vérification, mais consommé par une autre facture au moment où vous validez.
    - ADO.NET, ODBC, OLE DB ou quelqu'autre connecteur, le code SQL est le même.
    On ne jouit bien que de ce qu’on partage.

  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
    Bonjour Monsieur
    vous avez raison au coté de rédaction ...
    en bref j ai une facture d achat provenant d un table F et un stock s provenant de la table S ce que je veux le code va Mettre à jour le stock après la validation de L'achat ( la quantité de stock de chaque article de la facture va augmenter ) .
    Exemple :
    le Stock S:
    Désignation / quantité

    Gâteau / 2

    cake / 1

    chocolat / 3

    eau Minéral / 4

    LA facture D'achat F :

    Désignation / quantité

    cake / 1

    chocolat / 2

    eau Minéral / 1

    je veux le code qui va mettre le stock S à jours au valeurs Suivante après la validation d achat
    stock S devient :
    Désignation / quantité

    Gâteau / 2

    cake / 2

    chocolat / 5

    eau Minéral / 5

    Merci

  4. #4
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Ok, il faudra alors faire autant d'UPDATE qu'il y a de lignes dans la facture.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE S set quantite = quantite + @qte_facture where article = @art_facture
    On ne jouit bien que de ce qu’on partage.

  5. #5
    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
    le code a fonctionner mais le problème que le stock a été mis a jours juste pour la première article saisie dans la facture d achat et non pas pour tout les articles saisies dans la facture le code prend juste la première ligne de table F le mais a jours et laisse les autres lignes .
    voila le code que j ai déjà saisie
    sachant que achat_inst représente la facture F
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\agrimed.mdb")
            cn.Open()
     
            Dim cmdb As New OleDbCommand("select [Code Article] from achat_inst", cn)
            Dim cmdd As New OleDbCommand("select [Quantité] from achat_inst", 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()
    Merci

  6. #6
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Au lieu de faire deux requêtes pour ne récupérer qu'une valeur scalaire deux fois de suite, il vaut mieux faire :
    1/ Une requête qui sélectionne toutes les données désirées (notamment les deux colonnes article et quantité, et toutes les lignes de la facture). Au passage, je ne vois pas de filtre sur le numéro de facture dans vos requêtes, vous risquez d'avoir des soucis rapidement !
    2/ Une boucle pour traiter chaque ligne de la facture à la suite

    Ci-dessous un exemple pour parcourir plusieurs colonnes et lignes dans une requête :
    https://docs.microsoft.com/fr-fr/dot...tframework-4.8
    On ne jouit bien que de ce qu’on partage.

  7. #7
    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 le code svp
    Vous avez bien compris le problème et j aime avoir le code SVP StringBuilder si tu peux . l'enregistrement de numéro facture n'intervient pas au quantité de stock mais doit être enregistrer dans les opérations de stock au seconde étape Merci.

  8. #8
    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 Update plusieurs colonnes et lignes dans une seul requête
    en bref j ai une facture d achat provenant d un table achat_inst et un stock s provenant de la table Stock ce que je veux le code va Mettre à jour le stock après la validation de L'achat ( la quantité de stock de chaque article de la facture va augmenter ) .
    Exemple :
    état de Stock avant la validation d achat:
    Désignation / quantité

    Gâteau / 2

    cake / 1

    chocolat / 3

    eau Minéral / 4

    LA facture D'achat F contient :

    Désignation / quantité

    cake / 1

    chocolat / 2

    eau Minéral / 1

    je veux le code qui va mettre le stock S à jours au valeurs Suivante après la validation d achat de Facture F
    stock S devient :
    Désignation / quantité

    Gâteau / 2

    cake / 2

    chocolat / 5

    eau Minéral / 5

    j ai essayé avec ce code mai le problème ce code prend en charge juste la première ligne ( première article de la facture F) et met le stock a jours de cette article de la facture F et laisse les autres lignes(articles) sans aucun modification
    code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\agrimed.mdb")
    cn.Open()
     
    Dim cmdb As New OleDbCommand("select [Code Article] from achat_inst", cn)
    Dim cmdd As New OleDbCommand("select [Quantité] from achat_inst", 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()
    veuillez m aider à un code qui prend charge toutes les lignes ( les articles ) de la Facture F Et mettre à jour le stock S .
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 39
    Dernier message: 03/02/2016, 08h55
  2. Mise à jour de fichier excel via une BDD Access
    Par iliaseyah dans le forum Macros et VBA Excel
    Réponses: 49
    Dernier message: 20/08/2015, 14h23
  3. mise à jour de plusieurs col en une seule req
    Par radahm dans le forum PL/SQL
    Réponses: 2
    Dernier message: 04/11/2009, 11h03
  4. Mise à jour de plusieurs classeurs depuis une
    Par Zak Blayde dans le forum Excel
    Réponses: 7
    Dernier message: 03/07/2008, 09h33
  5. Réponses: 6
    Dernier message: 29/06/2006, 14h00

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