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

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Liban

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : avril 2012
    Messages : 33
    Points : 27
    Points
    27

    Par défaut Update Data in table from form

    Bonsoir,
    dans access, j'ai un table et un form.
    dans le table nomme "stock", il y plusieurs fields, parmi lesquels, on a un "barecode", et l'autre "quantity".
    et dans le form "form1"on a 2 textbox "bc" et "qty".
    je voudrais que quand je vends un produit avec une quantite precise, cette quantite sera soutraite du field "quantity" du stock.
    j'ai ecris ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub qty_BeforeUpdate(Cancel As Integer)
    Dim strSQL As String
    strSQL = "UPDATE stock" & _
        " SET stock.quantity = " & stock.quantity - Me.qty & _
        " WHERE stock.barecode = " & Forms![Form1]![bc]
     
    DoCmd.RunSQL strSQL
    Merci pour vos aides

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    3 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : mai 2012
    Messages : 3 594
    Points : 7 264
    Points
    7 264

    Par défaut

    Bonsoir,

    Je dirais :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub qty_BeforeUpdate(Cancel As Integer)
    Dim strSQL As String
    strSQL = "UPDATE stock" & _
        " SET stock.quantity = stock.quantity - " & Me.qty & _
        " WHERE stock.barecode = " & Forms![Form1]![bc]
     
    DoCmd.RunSQL strSQL
    Et pourquoi pas sur l'évènement AfterUpDate?

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Liban

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : avril 2012
    Messages : 33
    Points : 27
    Points
    27

    Par défaut

    merci mais il y a encore un truc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Option Compare Database
     
     
    Private Sub qty_AfterUpdate(Cancel As Integer)
    Dim strSQL As String
    strSQL = "UPDATE stock" & _
        " SET stock.quantity = stock.quantity - " & Me.Qty & _
        " WHERE stock.barecode = " & Forms![form1]![bc]
     
    DoCmd.RunSQL strSQL
    End Sub

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    3 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : mai 2012
    Messages : 3 594
    Points : 7 264
    Points
    7 264

    Par défaut

    Ensuite, j'imagine que barecode ou "bc" est du texte, donc il devrai t être entre "" ou '', ce qui donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Option Compare Database
    Private Sub qty_AfterUpdate(Cancel As Integer)
    Dim strSQL As String
    strSQL = "UPDATE stock" & _
        " SET stock.quantity = stock.quantity - " & Me.Qty & _
        " WHERE stock.barecode = """ & Forms![form1]![bc] & """"
     
    DoCmd.RunSQL strSQL
    End Sub
    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Liban

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : avril 2012
    Messages : 33
    Points : 27
    Points
    27

    Par défaut

    Non bc est un nombre de type double qu'on lit avec la machine du barre code

  6. #6
    Invité
    Invité(e)

    Par défaut

    Bonjour


    Citation Envoyé par line.z Voir le message
    merci mais il y a encore un truc:
    C'est à dire ? Message d'erreur ? Le résultat n'est pas bon ?

    Mme Soleil n'est pas sur le forum.

    Philippe

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Liban

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : avril 2012
    Messages : 33
    Points : 27
    Points
    27

    Par défaut

    Bonjour.
    je recois ce message
    Nom : Capture.PNG
Affichages : 67
Taille : 24,4 Ko

  8. #8
    Expert éminent

    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    3 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : mai 2012
    Messages : 3 594
    Points : 7 264
    Points
    7 264

    Par défaut

    Bonjour,

    Fais un Debug.print Forms![form1]![bc] avant d'exécuter ton code.
    A priori, si ton champ est Double, ce sont les séparateurs "," qui te posent problème.
    Il faudrait les remplacer par des "." lorsqu'ils passent en paramètre de ta requête.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Liban

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : avril 2012
    Messages : 33
    Points : 27
    Points
    27

    Par défaut

    merci beaucoup.
    le champs bc est de type double car il contient au moins 10 chiffres, c.a.d le type int est tres petit. on ne trouve pas des virgules dans bc.

  10. #10
    Expert éminent

    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    3 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : mai 2012
    Messages : 3 594
    Points : 7 264
    Points
    7 264

    Par défaut

    Ton problème ne serait pas dans le nom de tes variables ou contrôles, si tu es dans le même formulaire, pourquoi tu utilises Me.Qty et Forms![form1]![bc]. Pourquoi ne pas uniformiser ton code en utilisant uniquement Me.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Compare Database
    Private Sub qty_AfterUpdate(Cancel As Integer)
    Dim strSQL As String
    strSQL = "UPDATE stock" & _
        " SET stock.quantity = stock.quantity - " & Me.Qty & _
        " WHERE stock.barecode = " & Me.bc
     
    DoCmd.RunSQL strSQL
    End Sub
    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  11. #11
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Liban

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : avril 2012
    Messages : 33
    Points : 27
    Points
    27

    Par défaut

    meme en uniformisant les noms, j'obtiens le meme message box.
    merci beaucoup pour votre aide.
    voila ce qu'il y a dans property sheet:
    Nom : c1.PNG
Affichages : 58
Taille : 9,6 Ko
    est-ce tout est normal ici?

  12. #12
    Expert éminent

    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    3 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : mai 2012
    Messages : 3 594
    Points : 7 264
    Points
    7 264

    Par défaut

    Je ne sais pas ce qui se passe mais le code marche chez moi et tu utilises le bon évènement.
    Il faudrait la partie incriminée de la base pour que l'on puisse voir qu'est-ce qui se passe.
    Serait-ce possible de la poster anonymisée et zippée stp.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  13. #13
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Liban

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : avril 2012
    Messages : 33
    Points : 27
    Points
    27

    Par défaut

    Merci beaucoup Mandersi
    Database.zip
    j'ai aussi un petit problem, que quand j'ouvre le form1, eh j'insere les barecodes, l'item n'apparait que quand je refraishis, pourquoi?

    pardon si je vous derange.

  14. #14
    Expert éminent

    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    3 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : mai 2012
    Messages : 3 594
    Points : 7 264
    Points
    7 264

    Par défaut

    Bonsoir,

    Je crois bien que ton formulaire est corrompu. Il faut en créer un autre. Il y a dû y avoir des manipulations qu'Access n'a pas aimées.
    La cause est la même pour ton 2ème problème.
    Je te joins ta base avec un nouveau formulaire.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  15. #15
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Liban

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : avril 2012
    Messages : 33
    Points : 27
    Points
    27

    Par défaut

    Merci beaucoup Madefemere, c'est résolu.
    je vs ai fatigues.
    mais je veux montrer quel était le truc pour les autres.
    premièrement dans la function Dlookup:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DLookUp("[Item]","[Stock]","[barecode]=" & [bc])
    au lieu du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DLookUp("Item","Stock","barecode=" & " [bc]")
    deuxiement dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub Qty_AfterUpdate()
    Dim strsql As String
    strsql = "UPDATE Stock" & _
        " SET Qty = Qty - " & Me.Qty & _
        " WHERE barecode = " & Me.bc
     
    DoCmd.RunSQL strsql
    End Sub

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/02/2011, 17h31
  2. Excel data Update dans Access Table
    Par scotia dans le forum VBA Access
    Réponses: 1
    Dernier message: 01/05/2010, 08h51
  3. update table from sous-requête
    Par Raay dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/07/2009, 10h01
  4. UPDATE d'une table avec test d'un champ d'une autre table
    Par delphim dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/05/2004, 12h30
  5. Update entre 2 tables
    Par jfox dans le forum SQL
    Réponses: 8
    Dernier message: 04/11/2003, 10h22

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