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]

Répondre à