Message syntaxe Incorrecte de l'instruction update

Fermé
Serge_Eddy Messages postés 4 Date d'inscription mercredi 29 juillet 2015 Statut Membre Dernière intervention 30 juillet 2015 - 29 juil. 2015 à 15:03
Patrice33740 Messages postés 8561 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 15 mars 2025 - 6 août 2015 à 11:57
Bonjour,

J'écris un programme de Gestion de stock pièce de rechange en VB6. Et pour ce faire, j'ai créer une table Stock que je vais, à chaque fois qu'il y a un mouvement, la mettre à jour. Cela m'a ameneé à écrire le code suivant:

SqlSortie = "UPDATE T_Stock_DepMag SET Qte_entree = Qte_entree + " & Verse & " , SET Stock = (Stock + " & Verse & ") - Qte_sortie where Num_Enr_Depot = " & IntDepot & " And Num_Enr_Article = " & IntRemise & ""

adoConn.ConnectionString = DbCn
adoConn.CommandTimeout = 1200
adoConn.ConnectionTimeout = 1200
adoConn.Open



adoCmd.CommandText = SqlSortie
adoCmd.ActiveConnection = adoConn
adoCmd.Execute
Set adoCmd = Nothing
adoConn.Close
Set adoConn = Nothing

Sqlsortie est une variable string et verse, Intdepot, Intremise aussi des varible integer déclarés dans le programme.

A chaque fois que je tente de l'exécuter, j'ai le message suivant:

Erreur de syntaxe dans l'instruction Update.
C'est ce qui me bloque.

Merci de me venir en aide.

Serge Edy
A voir également:

10 réponses

Utilisateur anonyme
29 juil. 2015 à 16:03
Bonjour

Dans un UPDATE, il faut mettre le mot SET une seule fois et pas le répéter pour chaque champ mis à jour.

D'autre part, peux-tu me dire à quoi ça sert d'ajouter une chaîne vide à la fin d'une chaîne ? ( & "")
0
Serge_Eddy Messages postés 4 Date d'inscription mercredi 29 juillet 2015 Statut Membre Dernière intervention 30 juillet 2015
29 juil. 2015 à 16:36
Logiquement j'avais mis un seul SET telque cela se présente ci - dessous
Et ce qui se présente à la fin n'est pas une chaîne vide .

SqlSortie = "UPDATE T_Stock_DepMag SET Qte_entree = Qte_entree + " & Verse & " , Stock = (Stock + " & Verse & ") - Qte_sortie where Num_Enr_Depot = " & IntDepot & " And Num_Enr_Article = " & IntRemise & ""

Merci pour la suite.
0
Patrice33740 Messages postés 8561 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 15 mars 2025 1 779
29 juil. 2015 à 18:36
Tu as écris :
Cela m'a ameneé à écrire le code suivant:
SqlSortie = "UPDATE T_Stock_DepMag
SET Qte_entree = Qte_entree + " & Verse & " , SET Stock = (Stock + " & Verse & ") - Qte_sortie where Num_Enr_Depot = " & IntDepot & " And Num_Enr_Article = " & IntRemise & ""
0
Utilisateur anonyme
29 juil. 2015 à 20:08
As-tu fait un Debug.Print SqlSortie pour voir quelle est ta requête réelle ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Serge_Eddy Messages postés 4 Date d'inscription mercredi 29 juillet 2015 Statut Membre Dernière intervention 30 juillet 2015
30 juil. 2015 à 09:07
Jusque là ça ne marche pas mais si je ne considère que la 1ère partie c'est - à - dire,
SqlSortie = "UPDATE T_Stock_DepMag SET Qte_entree = Qte_entree + " & Verse & " where Num_Enr_Depot = " & IntDepot & " And Num_Enr_Article = " & IntRemise & ""

Là ça marche
par contre si j'ajoute la syntaxe Stock = (Stock + " & Verse & ") - Qte_sortie
j'ai le message d'erreur sur la syntaxe de l'instruction. Comment alors présenter cette cette syntaxe?
0
Utilisateur anonyme
30 juil. 2015 à 16:27
Je te signale que je t'ai déjà demandé :
As-tu fait un Debug.Print SqlSortie pour voir quelle est ta requête réelle ?
0
Serge_Eddy Messages postés 4 Date d'inscription mercredi 29 juillet 2015 Statut Membre Dernière intervention 30 juillet 2015
30 juil. 2015 à 17:50
J'avais fait le debug.print Sqlsortie sans succès.
0
Utilisateur anonyme
30 juil. 2015 à 20:48
C'est quoi un debug.print Sqlsortie sans succès ? L'instruction ne s'exécute pas ? Elle n'affiche rien ? Il y a un message d'erreur ? Ou tu ne comprends pas ce qu'il faut faire ? Ou tu ne sais pas où voir le résultat ?
0
Patrice33740 Messages postés 8561 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 15 mars 2025 1 779
30 juil. 2015 à 21:04
Dur, dur ....
0
Mes excuses de réagir en retard, c'est vrai que j'avais exécuté debug.print sqlsortie sans que s'affiche un message d'erreur, je n'ai pas vu le résultat bref je ne sais pas à quoi cela rime. Si tu peux m'expliquer comment ça marche?

Eddy
0
Patrice33740 Messages postés 8561 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 15 mars 2025 1 779
Modifié par Patrice33740 le 3/08/2015 à 19:08
Bonjour,

Le commande DebugPrint ne génère pas de message d'erreur !!!

Elle sert à déboguer un programme en écrivant la valeur qui la suit dans la fenêtre Exécution de l'éditeur Visual Basic.

Dans ce cas, la valeur de la variable SqlSortie, ce qui permet de contrôler que cette requête correspond bien à ce que tu voulais faire.

Si la fenêtre n'est pas affichée : Affichage / Variables locales
Cordialement
Patrice
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 257
5 août 2015 à 23:33
Bonjour,

Heuuu, 'Affichage / Fenêtre d'exécution' en l'occurrence ;-) Ou Ctrl+G
Mais Variables locales permettra aussi de la visualiser.

eric
0
Patrice33740 Messages postés 8561 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 15 mars 2025 1 779 > eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024
6 août 2015 à 11:57
oups !!!
0