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

VBA Access Discussion :

Erreur de Compilation : Mettre à jour une table avec un UPDATE


Sujet :

VBA Access

  1. #1
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 86
    Points : 77
    Points
    77
    Par défaut Erreur de Compilation : Mettre à jour une table avec un UPDATE
    Bonjour,

    Alors ça fait quelques messages que je laisse sur le forum, toujours pour ma création de planning, et mon cheminement avance, je tente ici de coder un bouton de rafrachissement d'horaires dans une table en VBA.
    Malheureusement Access ne veut même pas compiler. Pourtant j'ai lu plusieurs tuto, faq et je ne trouve pas mon erreur ! (apparamment elle se trouve sur la ligne ci-dessous commençant par "UPDATE", access me dit : "Erreur de compilation, attendu : fin d'instruction").
    J'arrive à la fin de mon projet ça serait vraiment bien si quelqu'un pouvait me corriger ce code vite fait!
    Merci beaucoup!

    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
     
    Private Sub Commande100_Click()
    On Error GoTo Err_Commande100_Click
     
    Dim NomAffaire As String
    Dim H_en_plue As Long
     
    '' Récupère les valeurs entrées par l'utilisateur, à savoir le nom de l'affaire et le nombre d'heures effectuées par l'ouvrier
     
    NomAffaire = Affaire.Value
    H_en_plus = Heures
     
    '' Met à jour la base de donnée
     
    UPDATE T_Affaire SET Nb_h_ecoule=Nb_h_ecoule+H_en_plus WHERE T_Affaire.Numero_Affaire=NomAffaire WITH OWNERACCESS OPTION;
     
     
    Exit_Commande100_Click:
        Exit Sub
     
    Err_Commande100_Click:
        MsgBox Err.Description
        Resume Exit_Commande100_Click
     
    End Sub
    Quelques types : Affaires est une liste déroulante dans un formulaire basé sur une table, mais qui n'est pas la table "T_Affaire"

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Tu ne peux lancer une requête de mise à jour de la sorte, il faut utiliser la méthode : Docmd.Runsql

    Regardes dans l'aide Access pour avoir la syntaxe complète et un exemple.

    Starec

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Points : 507
    Points
    507
    Par défaut
    Comme l'a dit Starec, il faut utiliser docmd.runsql pour executer ta requete !

    Si je peux te donner un conseil, quand tu crées un bouton, prends l'habitude de le renommer, c'est beaucoup plus propre que d'avoir commande100, ... !
    Marcuscircus : La seule différence entre un rêve et sa réalisation, c'est l'envie

  4. #4
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 86
    Points : 77
    Points
    77
    Par défaut
    Ok j'ai changé mon code je vous le met ci-dessous en intégralité (ça marche pas encore mais ça avance, je m'explique en bas de page...)

    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
     
    Private Sub Commande100_Click()
    On Error GoTo Err_Commande100_Click
     
    Dim NomAffaire As String
    Dim H_en_plue As Long
    Dim SQL As String
     
    '' Récupère les valeurs entrées par l'utilisateur, à savoir le nom de l'affaire et le nombre d'heures effectuées par l'ouvrier
     
    NomAffaire = Affaire.Value
    H_en_plus = Heures
     
    '' Met à jour la base de donnée
     
    SQL = "UPDATE T_Affaire" & _
            "SET T_Affaire.Nb_h_ecoule= T_Affaire.Nb_h_ecoule + H_en_plus" & _
            "WHERE T_Affaire.Numero_Affaire= NomAffaire"
     
    DoCmd.RunSQL SQL
     
    Exit_Commande100_Click:
        Exit Sub
    Err_Commande100_Click:
        MsgBox Err.Description
    La compilation passe, c'est déjà ça ^^
    Par contre quand j'appuie sur ce bouton (dont je changerais le nom à l'avenir c'est vrai que c'est plus clair marcuscircus), access me dit "Erreur de syntaxe dans l'instruction UPDATE"

    Il est possible que ce soit parce que le formulaire ne découle pas de la table que je veux modifier et donc qu'il faut utiliser l'instruction IN non ? Mais je ne trouve pas comment utiliser "IN" sur l'aide. Enfin bon c'est peut-être pas ça je ne sais pas trop...

    Vous avez un avis?

  5. #5
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 86
    Points : 77
    Points
    77
    Par défaut
    It works!

    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
     
    Private Sub Commande100_Click()
    On Error GoTo Err_Commande100_Click
     
    Dim NomAffaire As String
    Dim H_en_plue As Long
    Dim SQL As String
     
    '' Met à jour la base de donnée
     
    SQL = "UPDATE T_Affaire SET T_Affaire.Nb_H_ecoule= T_Affaire.Nb_H_ecoule + Heures WHERE T_Affaire.Numero_Affaire= Affaire.Value"
     
    DoCmd.RunSQL SQL
     
     
    Exit_Commande100_Click:
        Exit Sub
    Err_Commande100_Click:
        MsgBox Err.Description
        Resume Exit_Commande100_Click
     
    End Sub

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/04/2013, 12h04
  2. Réponses: 6
    Dernier message: 08/02/2012, 16h18
  3. [AC-2003] Mettre à jour une table avec une variable
    Par nawakbling dans le forum VBA Access
    Réponses: 1
    Dernier message: 02/04/2010, 10h33
  4. [MySQL] Mettre à jour une table avec plusiers tables
    Par lez-j dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/02/2010, 21h37
  5. Réponses: 3
    Dernier message: 18/07/2006, 17h37

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