Syntaxe autour d'une variable de type single dans une requête

Résolu
cs_Eric25 Messages postés 175 Date d'inscription mardi 19 octobre 2004 Statut Membre Dernière intervention 26 juin 2006 - 2 févr. 2005 à 19:57
cs_Eric25 Messages postés 175 Date d'inscription mardi 19 octobre 2004 Statut Membre Dernière intervention 26 juin 2006 - 3 févr. 2005 à 00:29
Bonjour,

Je n'arrive pas à passer une requête qui plante au niveau d'une varible de type single.
Voici des morceaux du code:

'Je déclare une variable Somme de type single
Dim Somme as single
'Cette variable récupère ensuite une valeur numérique entière ou décimal

'La variable intervient ensuite dans une requête de mise à jour
Rs_Com.Open "UPDATE COMMANDE SET Mont_Com= Mont_Com - '" & Somme & "' WHERE Num_Com=" & Numero & "", Cn, adOpenDynamic, adLockOptimistic

Ecrite de cette façon, la requête passe quand le contenu de Somme est en entier et renvoi le message d'erreur suivant quand le contenu ne l'est pas : Erreur de conversion de données Varchar en Numéric
En enlevant les ', les entiers passent mais ca bloque ensuite au chiffre qui suit la virgule, le message d'erreur est alors : Syntaxe incorrect vers 1 (si 1 est le chiffre après la virgule)
Et en mettant des parenthèse :
Rs_Com.Open "UPDATE COMMANDE SET Mont_Com= (Mont_Com - " & Somme & ") WHERE Num_Com=" & Numero & "", Cn, adOpenDynamic, adLockOptimistic
le message d'erreur est : syntaxe incorrecte vers ','

Je n'arrive à trouver la syntaxe correcte...

Merci d'avance

9 réponses

cs_Eric25 Messages postés 175 Date d'inscription mardi 19 octobre 2004 Statut Membre Dernière intervention 26 juin 2006 3
2 févr. 2005 à 20:57
Ca y est, trouvé
il fallait effectué une conversion mais dans l'autre sens avec Str:Rs_Com.Open "UPDATE COMMANDE SET Mont_ComMont_Com - " & Str(Somme) & " WHERE Num_Com" & Numero & "", Cn, adOpenDynamic, adLockOptimistic
3
fg10 Messages postés 34 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 24 mai 2010 1
2 févr. 2005 à 20:20
Rs_Com.Open "UPDATE COMMANDE SET Mont_Com= Mont_Com - " & "'" & LaSomme & "'" & " WHERE Num_Com=" & Numero & "", Cn, adOpenDynamic, adLockOptimistic
0
cs_Eric25 Messages postés 175 Date d'inscription mardi 19 octobre 2004 Statut Membre Dernière intervention 26 juin 2006 3
2 févr. 2005 à 20:36
Le message d'erreur est le même : Erreur de conversion de données Varchar en numérique...

Une autre idée?
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
2 févr. 2005 à 20:43
Salut,

Essaie ça :
Rs_Com.Open "UPDATE COMMANDE SET Mont_Com Mont_Com - " & LaSomme & " WHERE Num_Com " & Numero, Cn, adOpenDynamic, adLockOptimistic

Cordialement, CanisLupus
0

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

Posez votre question
cs_Eric25 Messages postés 175 Date d'inscription mardi 19 octobre 2004 Statut Membre Dernière intervention 26 juin 2006 3
2 févr. 2005 à 20:50
Non, comme je l'ai dit dans mon message initial, ça ne marche pas non plus, ca met le message suivant : syntaxe incorrect vers 4 (si 4 est le chiffre après la virgule).
J'ai essayé d'effectuer des conversions avec Hex() ou Oct() mais dans ce cas cela me transforme le décimal en entier...
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
2 févr. 2005 à 21:19
Excuses, mais il aurait fallu que tu précises que ton champ Mont_Com était un champ texte. Tu aurais eu ta réponse plus rapidement.
Maintenant, si tu gères des sommes, le format texte n'est pas trop adapté dans une base de données. Sinon, tu vas avoir d'autres problèmes car les calculs sur des champs texte peuvent produire des résultats plus que bizarres.
Mais bon, c'est ton choix......

Bonne prog

Cordialement, CanisLupus
0
cs_Eric25 Messages postés 175 Date d'inscription mardi 19 octobre 2004 Statut Membre Dernière intervention 26 juin 2006 3
2 févr. 2005 à 22:15
Bien justement non, Mont_Com est un champ décimal (la base est sous SQL Serveur).
c'est pour cela que j'ai trouvé l'erreur bizarre...
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
2 févr. 2005 à 23:06
En effet, une erreur bizarre, à approfondir.... Je ne connais pas suffisamment SQL Server, seulement Access, Informix et Oracle. Mais je vais étudier ça au cas où...

Bonne prog

Cordialement, CanisLupus
0
cs_Eric25 Messages postés 175 Date d'inscription mardi 19 octobre 2004 Statut Membre Dernière intervention 26 juin 2006 3
3 févr. 2005 à 00:29
Merci en tout cas...
0
Rejoignez-nous