bonjour liste,
j'ai qlqs problemes avec la recuperation des resultats
de requetes SQL ainsi qu'avec les nombres et les
conversions string->currency.
je fais un acces odbc->mysql avec un select qui me
renvoie une somme.
lorsque je l'execute en ligne de commande mysql, ca
marche, mais lors d'un acces a partir d'OOo, j'ai mon
nombre qui est tronque de sa partie decimale:
=============
'la source est correctement connecte
res=req.executeQuery("select nom,sum(credit) from
clients group by idclients")
Do while res.next
nom =res.Columns(0).String
str_solde=res.Columns(1).String 'type String...
msgbox("str_solde=" & str_solde) 'renvoie la sommme
tronquee!
' traiter nom, str_solde
Loop
==============
si je fais res.Columns(1).Short, la troncature est
aussi effectuee. .Double n'est pas acceptable car les
calculs doivent etre exacts (cf. plus loin).
puis il y a ce code:
===============
Sub Main
Dim s As String
Dim c As Currency, d As Currency, g As Currency
Dim e As Integer
s="zero"
c=100/8/2 'voici d'un coup le resultat qu'on veut
GoSub dump
s="un"
c=100
d=100/8 '=12.5 ok
GoSub dump
s="deux"
c=d
d=c/2 '=0 ko!
GoSub dump
s="trois"
e=2
d=c/e '=0 ko!
GoSub dump
s="quatre"
g=2
d=c/g '=0 ko!
GoSub dump
Exit Sub
dump:
msgbox "s=" & s & chr(13) & "c=" & c & chr(13) & "d="
& d & chr(13) & "e=" & e & chr(13) & "g=" & g
Return
End Sub
===============
mais si on remplace dans les rvalues des affectations,
les variables par leur val() (ie. d=val(c)/val(g)), ca
marche.
en lisant "Programmation OOo" d'eyrolles, je vois que
val() renvoie un flottant, or je veux un calcul
_exact_ a 4 decimales.
tjs dans le meme livre p58: les currency ne supportent
que + et - pour la version 1.1.
ma question est: comment fait-on pour convertir sans
perte d'information (en deca de 4 decimales, et sans
la troncature des flottants) ainsi que pour effectuer
des operations de division et multiplication sur les
currency?
M. Marcelly devrait mettre en gras le passage p58 pour
la prochaine edition. ;)
merci beaucoup,
snopie
___________________________________________________________________________
Appel audio GRATUIT partout dans le monde avec le nouveau Yahoo! Messenger
Téléchargez cette version sur http://fr.messenger.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]