cs_Eric25
Messages postés175Date d'inscriptionmardi 19 octobre 2004StatutMembreDernière intervention26 juin 2006
-
2 févr. 2005 à 19:57
cs_Eric25
Messages postés175Date d'inscriptionmardi 19 octobre 2004StatutMembreDernière intervention26 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 ','
cs_Eric25
Messages postés175Date d'inscriptionmardi 19 octobre 2004StatutMembreDernière intervention26 juin 20063 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
cs_Eric25
Messages postés175Date d'inscriptionmardi 19 octobre 2004StatutMembreDernière intervention26 juin 20063 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...
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 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......
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 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ù...