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

Requêtes et SQL. Discussion :

Erreur de syntaxe dans UPDATE


Sujet :

Requêtes et SQL.

  1. #1
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut Erreur de syntaxe dans UPDATE
    Bonjour,

    J'essaie de mettre à jour un enregistrement mais j'ai une erreur de syntaxe dans l'instruction UPDATE.

    Voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    strSQL = "UPDATE tblCHO SET tblCHO.cho_depenses =" & dblCout & ", tblCHO.cho_heures =" & lngHeures & ", tblCHO.cho_cout_horaire = " & sngTaux & " " & _
             "WHERE (tblCHO.cho_annee=" & intAnnee & " AND tblCHO.cho_categorie='" & strCategorie & "');"
    DoCmd.RunSQL strSQL
    Avez-vous une idée ?
    Gabout

  2. #2
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    Gabout bonjour,

    A première vue ta requête semble bonne. Peut être s'agit t-il d'une valeur erronée dans une variable ?

    Afin de trouver ton erreur effectues un debug.print de strSQL devant ton DoCmd.RunSQL et repost le résultat.

    Astuce : En exécutant cette requête directement sous Access tu devrais trouver ton erreur !

    Bonne journée

    JimBoLion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  3. #3
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour Jean-Marie,

    Merci de ton attention.

    J'ai fait un test dans la fenêtre d'exécution ; le résultat de strSQL est
    UPDATE tblCHO SET tblCHO.cho_depenses =2847987,21, tblCHO.cho_heures =58464, tblCHO.cho_cout_horaire = 48,71352 WHERE (tblCHO.cho_annee=2008 AND tblCHO.cho_categorie='A');
    J'avoue ne pas comprendre : à première vue, la syntaxe colle.
    Je joins une copie de la structure de la table tblCHO.
    Images attachées Images attachées  
    Gabout

  4. #4
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour Gabout,
    Je ne veux pas répondre pour jimbolion mais comme je passais... L'erreur est ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tblCHO.cho_depenses =2847987,21,
    tu devrais lire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tblCHO.cho_depenses =2847987.21,
    même chose pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tblCHO.cho_cout_horaire = 48,71352
    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  5. #5
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour Robert et merci de ton aide,

    Je ne suis pas sûr...

    La fenêtre d'exécution ne te montre qu'une représentation du code avec les valeurs de l'instant.
    J'ai comme séparateur décimal la virgule dans ma configuration et Access s'en est toujours bien accommodé !

    Pour contourner le problème:
    • j'ai recréé une nouvelle base vide dans laquelle j'ai réimporté tous les objets (cela m'était arrivé dans une autre application sans en trouver la cause) : pas de résultat.
    • j'ai procédé à la mise à jour par un recordset : plantage sur le SQL du recordset (cf. image en PJ)


    Je tourne en rond !

    PS : par ailleurs, lorsque je teste la requête seule (par le requêteur), la sélection s'effectue parfaitement !
    Images attachées Images attachées  
    Gabout

  6. #6
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Utilisez plutôt des requêtes paramétrées, cela aura au moins le mérite de rendre le code plus clair et de faciliter les typages des données.

    Une requête nommée qryUpdate :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE tblCHO SET tblCHO.cho_depenses =pDepense, tblCHO.cho_heures =pHeure, tblCHO.cho_cout_horaire = pCout WHERE (tblCHO.cho_annee=pAnnee AND tblCHO.cho_categorie=pCategorie);
    Ensuite dans VBA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim oDb as dao.database
    Dim oQdf as Dao.Querydef
    Set oDb=CurrentDb
    Set oQdf = oDb.QueryDefs("qryUpdate")
    With oQdf
      .Parameters("pDepense")=dblCout
      .Parameters("pHeure")=...
     
    ...
    .Execute
    End With

  7. #7
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour Christophe,

    Essai transformé : j'ai adapté ton exemple et cela fonctionne parfaitement... et de plus j'ai appris !

    Merci beaucoup de ton aide.
    Gabout

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

Discussions similaires

  1. [AC-2007] Erreur de syntaxe dans l'instruction UPDATE
    Par ahoure dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/06/2014, 00h34
  2. [AC-2007] Erreur de syntaxe dans l'instruction UPDATE
    Par sebastien-16600 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 22/12/2012, 14h14
  3. Erreur de syntaxe dans un UPDATE
    Par l.laurent60 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/02/2012, 22h26
  4. [AC-2007] Erreur de syntaxe dans update
    Par dragoes64 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 18/07/2011, 16h24
  5. Erreur de syntaxe dans l'instruction UPDATE
    Par db48752b dans le forum ASP
    Réponses: 2
    Dernier message: 20/11/2008, 12h49

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