Requete Update en erreur

Résolu
Bonjour,
J'essaie de creer une requete de mise à jour de champ de texte avec la requete suivante
note_maj est une variable de type texte

UPDATE EnteteFacture SET EnteteFacture.[Note] = [note_maj] WHERE (((EnteteFacture.Code)='" & numbl & "'))
==> renvoie une erreur
UPDATE EnteteFacture SET EnteteFacture.[Note] = '&[note_maj]&' WHERE (((EnteteFacture.Code)='" & numbl & "'))
==> stocke note_mal dans mon champ note

Au secours

Merci

6 réponses

  1. Modérateur
    Salut,

    Tu utilises quoi comme langage où est exécutée la requête ?

    Quelle est exactement le texte de l'erreur renvoyée ? Car vue la syntaxe on peut tout simplement imaginer que cela indique "colonne inexistante", xxx n'est par identifié comme une variable du langage, mais comme un nom de colonne du SGBD dans la 1ère syntaxe. Alors que '&xxx&' doit créer une chaine de caractère , encadrée par ' et ramenant le contenu de la variable xxx

    0
    1. En fait j ai crée une variable note_maj et je veux mettre a jour le champ entetefacture.note avec son contenu
      Je n'arrive à ecrire dans entetefacture.note que "note_maj" ou &note_maj& en fonction de coomment je place les quotes
      Il n'y a qu une erreur de syntaxe incorrecte
      0
      1. Modérateur
        si la seconde syntaxe fonctionne, que cherches-tu de plus ???

        note_maj n'est pas différent de mumbl
        0
      2. @jee peeBonjour
        Merci pour les réponses mais en fait note_maj contient une valeur de type texte et je souhaiterai que ce soit cette valeur qui s'inscrive dans mon champ.
        Le contenu de la variable et pas le nom de la variable
        L'erreur de syntaxe est pour la première Ligne

        Merci
        0
      3. Modérateur
        @Fred73240et que donne la même syntaxe que
        ='" & numbl & "'
        ?
        0
    2. cela fonctionne
      mais si je l applique, cela affecte note_maj dans mon champ et pas sa valeur
      0
      1. Modérateur
        et juste =&note_maj&
        tu n'as pas répondu à ma toute première question, car quelqu'un qui développe dans le même environnement pourrait peut être avoir une meilleure réponse
        0
      2. @jee peePardon
        C est un soft de sage qui interprete du sql
        Cela donne erreur de syntaxe operateur absent
        0
      3. Modérateur
        @Fred73240il faudrait regarder la doc du logiciel pour voir les syntaxes exactes

        aussi juste une observation, ta note est une chaine, elle contient A, B ou C ou 10, car si dans la base le champ est un nombre, il faudrait peut être faire une conversion text/number
        0
      4. @jee peeNon elle contient du texte variable genre "Règlement ok"
        La doc ne mentionne pas ces syntaxes, c'est du sql selon l editeur et je ne trouve pas la bonne syntaxe
        0
    3. Modérateur
      Bonjour,

      Déjà, lorsque tu postes du code sur le forum, tu dois utiliser les balises de code.
      Cela permet d'avoir la coloration syntaxique.. et dans ton cas, ça pourrait être utile.

      Explications à lire ( entièrement) disponibles ici :
      https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

      Ensuite, c'est, semble-t'il, juste un souci de concaténation entre ta string (la requête) et des variables.
      Tu as réussi à le faire pour la variable numbl .. mais tu sembles coincer sur note_maj

      Je suppose que cette ligne est entourrée par des doubles-quotes ...

      Donc, j'essaierai un truc du genre
      "UPDATE EnteteFacture SET EnteteFacture.[Note] = '" & note_maj & "' WHERE (((EnteteFacture.Code)='" & numbl & "'))"
      

      0
      1. Bonsoir Jordane
        Merci d 'avoir pris le temps de répondre
        la reponse à ta requete est erreur de syntaxe dans la chaine de l'expression " 'blabla "
        blabla est le contenu de note_maj
        0
        1. Modérateur
          Je pense que tu as mal copîé/collé
          Tu peux nous mettre la ligne de code exacte et complète ?
          0
        2. @jordane45bien sur
          execute "UPDATE EnteteFacture SET EnteteFacture.[Note] = '" & note_maj & "' WHERE (((EnteteFacture.Code)='" & numbl & "'))"
          pour info lorsque j execute cette requete dans access cela fonctionne a merveille mais je n arrive pas a la traduire en SQL
          UPDATE EnteteFacture SET EnteteFacture.[Note] = [note_maj] WHERE (((EnteteFacture.Code)=[numbl]));
          0
        3. @Fred73240desole encore oublier les balises
          0
        4. Modérateur
          @Fred73240Et ta variable note_maj, elle contient quoi au juste ? il n'y aurait pas des apostrophes dedans ?
          Et peux tu nous donner le message d'erreur exacte ?
          0
        5. @jordane45le message d erreur est le suivant
          erreur de syntaxe dans la chaine de l'expression " 'blabla "

          non dans la variable il y a blabla
          0
      2. Merci a tous
        L'erreur venait du nom de la variable, en enlevant le _ de note_maj tout fonctionne avec ma requete de base
        0