Problème requête SQL

Résolu
Signaler
Messages postés
286
Date d'inscription
dimanche 3 octobre 2010
Statut
Membre
Dernière intervention
16 mai 2014
-
Messages postés
286
Date d'inscription
dimanche 3 octobre 2010
Statut
Membre
Dernière intervention
16 mai 2014
-
Bonjour,

Mon application VB .NET exécute des requêtes SQL sans souci, cependant je bloque sur une requête.

C'est au niveau mathématiques que je n'y arrive pas.

J'ai Prix article 100 et Prix Vente 100 * 1.28

A chaque prix je dois appliquer un coefficient de 1,28. dans mon programme j'ai donc fait :

INSERT INTO F_ARTICLE 
(AR_REF, AR_DESIGN, AR_PRIXACH, AR_PRIXVEN , NOMENCLATURE, FA_CODEFAMILLE, AR_NOMENCL, AR_COEF,CL_NO1,CL_NO2,CL_NO3,CL_NO4,AR_CONTREMARQUE,AR_SUIVISTOCK)
VALUES ('" & lblReference.Text & "','" & lblDesignation.Text & "', " & lblPrix.Text & " ,  " & lblPrix.Text & "* 1.28
 ,'" & lblNomenclature.Text & "', '" & lblFAmille.Text & "', 0,1.28," & lblCat1.Text & "," & lblCat2.Text & "," & lblCat3.Text & "," & lblCat4.Text & ",1,1)



Mais le souci est que dans la requete, l'étoile n'est pas interpretée comme un multiplicateur dans " & lblPrix.text &" * 1.28 "

Quelqu'un sait comment résoudre ce problème ?

Merci d'avance

3 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut

Revoici la deuxième partie de ta requète, correctement mise en forme.
Mise en forme pas que pour nos yeux, mais aussi dans ton code.
"INSERT INTO F_ARTICLE " & _
     "(AR_REF, AR_DESIGN, AR_PRIXACH, AR_PRIXVEN , NOMENCLATURE, " & _
     " FA_CODEFAMILLE, AR_NOMENCL, AR_COEF,CL_NO1,CL_NO2,CL_NO3, " & _
     " CL_NO4,AR_CONTREMARQUE,AR_SUIVISTOCK)" & _
"VALUES ('" & lblReference.Text & "','" & _
              lblDesignation.Text & "', " & _
              lblPrix.Text & " , " & _
              lblPrix.Text & "* 1.28 ,'" & _
              lblNomenclature.Text & "', '" & _
              lblFAmille.Text & "', " & _
              "0," & _
              "1.28," & _
              lblCat1.Text & "," & _
              lblCat2.Text & "," & _
              lblCat3.Text & "," & _
              lblCat4.Text & "," & _
              "1," & _
              "1)"

Maintenant, "j'y arrive pas" ne suffit pas à décrire une problème.
As-tu une erreur ?
Laquelle ?

A mon avis, la syntaxe VALUES ne permet pas de spécifier autre chose que des constantes : dans ta syntaxe, tu demandes à SQL de faire le calcul. Je pense que c'est là que ça coince.
Il te suffit de le faire faire par VB :
              lblPrix.Text & " , " & _
              (CSng(lblPrix.Text) * 1.28).ToString & ",'" & _
              lblNomenclature.Text & "', '" & _

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Re
C'est une très mauvaise idée d'engorger les tables avec des données inutiles :
Dans la liste des VALUES, je vois un "1.28" tout seul.
S'il a rapport avec le 1.28 utilisé dans ton calcul, à quoi te sert-il de stocker dans la base de données le résultat d'un calcul que tu peux demander à faire lors de la lecture ?
Exemple :
Select AR_PRIXACH * AR_COEF
  From F_ARTICLE
Messages postés
286
Date d'inscription
dimanche 3 octobre 2010
Statut
Membre
Dernière intervention
16 mai 2014

Bonjour,

Merci pour la remise en forme de la requête, je n'ai pas encore vu cette structure en cours.

Mon erreur est que lors de la requête le calcul :"valeur * 1.28" ne s'effectue pas et donc le driver ODBC ne lit que du texte et ne fait pas l'opération demandée.
Et donc la requête essaye d’insérer une chaîne de caractères dans un champs de type INT.

Merci pour ta solution je vais essayer.

Je t'expliques pourquoi j'ajoute le "1.28" dans ma table. La requete doit renseigner un certain nombre de champs et le champs du coefficient doit etre spécifié , il sera juste stocké dans une textbox. Quand on passe en manuel dans le programme, des que l'on met un coefficient, la textbox contenant le prix de vente se remplit automatiquement "PRIX * COEFFICIENT". Mais pour cela il faut cliquer dans la textbox du Prix de vente.

Cependant l'application doit restée fermée pendant les requetes et je ne peux pas cliquer dans cette textbox. Voilà pourquoi je doit l'ajouter manuellement via ma requete !


Merci pour ton aide