Requete Update en erreur [Résolu]

Signaler
Messages postés
11
Date d'inscription
mardi 24 novembre 2020
Statut
Membre
Dernière intervention
25 novembre 2020
-
 Fred73240 -
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

Messages postés
30616
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
18 janvier 2021
7 239
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

Messages postés
11
Date d'inscription
mardi 24 novembre 2020
Statut
Membre
Dernière intervention
25 novembre 2020

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 ¬e_maj& en fonction de coomment je place les quotes
Il n'y a qu une erreur de syntaxe incorrecte
Messages postés
30616
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
18 janvier 2021
7 239
si la seconde syntaxe fonctionne, que cherches-tu de plus ???

note_maj n'est pas différent de mumbl
Messages postés
11
Date d'inscription
mardi 24 novembre 2020
Statut
Membre
Dernière intervention
25 novembre 2020
>
Messages postés
30616
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
18 janvier 2021

Bonjour
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
Messages postés
30616
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
18 janvier 2021
7 239 >
Messages postés
11
Date d'inscription
mardi 24 novembre 2020
Statut
Membre
Dernière intervention
25 novembre 2020

et que donne la même syntaxe que
='" & numbl & "'
?
Messages postés
11
Date d'inscription
mardi 24 novembre 2020
Statut
Membre
Dernière intervention
25 novembre 2020

cela fonctionne
mais si je l applique, cela affecte note_maj dans mon champ et pas sa valeur
Messages postés
30616
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
18 janvier 2021
7 239
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
Messages postés
11
Date d'inscription
mardi 24 novembre 2020
Statut
Membre
Dernière intervention
25 novembre 2020
>
Messages postés
30616
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
18 janvier 2021

Pardon
C est un soft de sage qui interprete du sql
Cela donne erreur de syntaxe operateur absent
Messages postés
30616
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
18 janvier 2021
7 239 >
Messages postés
11
Date d'inscription
mardi 24 novembre 2020
Statut
Membre
Dernière intervention
25 novembre 2020

il 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
Messages postés
11
Date d'inscription
mardi 24 novembre 2020
Statut
Membre
Dernière intervention
25 novembre 2020
>
Messages postés
30616
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
18 janvier 2021

Non 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
Messages postés
31088
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 janvier 2021
3 193 >
Messages postés
11
Date d'inscription
mardi 24 novembre 2020
Statut
Membre
Dernière intervention
25 novembre 2020

Messages postés
31088
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 janvier 2021
3 193
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 & "'))"

Messages postés
11
Date d'inscription
mardi 24 novembre 2020
Statut
Membre
Dernière intervention
25 novembre 2020

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
Messages postés
31088
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 janvier 2021
3 193 >
Messages postés
11
Date d'inscription
mardi 24 novembre 2020
Statut
Membre
Dernière intervention
25 novembre 2020

Et 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 ?
Messages postés
11
Date d'inscription
mardi 24 novembre 2020
Statut
Membre
Dernière intervention
25 novembre 2020
>
Messages postés
31088
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 janvier 2021

le message d erreur est le suivant
erreur de syntaxe dans la chaine de l'expression " 'blabla "

non dans la variable il y a blabla
Messages postés
31088
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 janvier 2021
3 193 >
Messages postés
11
Date d'inscription
mardi 24 novembre 2020
Statut
Membre
Dernière intervention
25 novembre 2020

Juste pour tester, si tu remplaces la variable par le texte, comme ceci :
execute "UPDATE EnteteFacture SET EnteteFacture.[Note] = 'blabla' WHERE EnteteFacture.Code='" & numbl & "'"


ça donne quoi ?

Au passage, pourquoi avoir mis des parenthèses dans ton where ??
Messages postés
31088
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 janvier 2021
3 193 >
Messages postés
31088
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 janvier 2021

Tu peux aussi essayer
execute "UPDATE EnteteFacture SET EnteteFacture.[Note] = '[blabla]' WHERE EnteteFacture.Code='" & numbl & "'"
Messages postés
31088
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 janvier 2021
3 193 >
Messages postés
31088
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 janvier 2021

L'idéal serait de tester la requête directement dans la bdd (sans passer par du code SAP ) via sqlmanager par exemple...
Merci a tous
L'erreur venait du nom de la variable, en enlevant le _ de note_maj tout fonctionne avec ma requete de base