Newsgroup: it.comp.appl.access
Titolo: Problemi simbolo decimali

Mi trovo alle prese con  questo problema:
Dim totale As Currency
totale = DSum("[qta]", "arrivi", "[articolo]='pere'")
DoCmd.RunSQL ("Update magazzino set qta=" & totale _
            & " Where articolo = 'pere'")
Mi compare sempre il messaggio "Errore di sintassi nell'espressione SQL"
Il campo [qta] contiene un numero con 2 decimali (es. 128,75) e come 
separatore di decimali access mette una virgola, ma l'istruzione SQL  di 
Update non accetta la virgola ma vuole il punto (ho provato con una query).
Come faccio a convertire i 2 simboli?
Grazie

 Grazie
Sicuro sicuro sia questo il problema?
Mhà... cmq, vedi FORMAT.
-- 
Ciao
Pablitomf (Maurizio Facciuti)
Access : Ver.97 - 2K
----------------------------------
http://www.accessgroup.it/
http://www.sitocomune.com/
----------------------------------
Non mi fido molto delle statistiche, perchè un uomo con la testa nel forno
acceso e i piedi nel congelatore statisticamente ha una temperatura media.
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Ivan ha scritto:

mi sembra strano che tu definisca un tipo currency (usato per valute)
per un campo che, apparentemente, serve per definire una quantità
numerica. Io avrei usato un tipo double. A parte questo usa questa
sintassi:
DoCmd.RunSQL ("Update magazzino set qta=" & replace(totale,",",".") _
           & " Where articolo = 'pere'")
 
ciao

 ciao


[CUT]
mi sembra strano che tu definisca un tipo currency (usato per valute)
per un campo che, apparentemente, serve per definire una quantità
numerica. Io avrei usato un tipo double. A parte questo usa questa
sintassi:
DoCmd.RunSQL ("Update magazzino set qta=" & replace(totale,",",".") _
           & " Where articolo = 'pere'")
ciao
E' vero posso usare tranquillamente il double, ma non cambierebbe.
Il problema è che ho provato ad usare il Replace, ma non so perchè anzichè 
sostituirmi la virgola con il punto mi restituisce il numero intero. ( es. 
128,75  me lo trasforma in 12875)
Non è che replace funziona solo con le stringhe e non con i numeri ?
Dimenticavo! Uso access 2003 

            & " Where articolo = 'pere'")
P.S.: ho provato con il format  "#.00" ma restituisce sempre il numero
con la virgola
ciao





ciao
OK Funziona!!
Grazie 1000 

 Grazie 1000
Funziona con quale soluzione?


 Grazie
Utilizza al posto di ' il  Chr(34) e  riscrivila così:
Dim totale As Double
totale = DSum("[qta]", "arrivi", "[articolo]= & Chr(34) & "pere" & Chr(34))
DoCmd.RunSQL ("Update magazzino set qta = " & Chr(34) & totale & Chr(34) _
             & " Where articolo =" & Chr(34) & "pere" & Chr(34) & ";")
L'ho già provata e funziona.
--
rgrds
SC
-- 


 ha scritto nel messaggio
news:4487d25d$0$36926$4faf...@reader3.news.tin.it...

Ciao Ivan,
come avrai capito l'errore č dovuto alla virgola generata dalla conversione
del numero in stringa.
La virgola nel linguaggio SQL č il separatore di elemento, per passare
adeguatamente il valore usa la funzione STR()
----
totale = DSum("[qta]", "arrivi", "[articolo]='pere'")
DoCmd.RunSQL ("Update magazzino set qta=" & STR(totale) _
            & " Where articolo = 'pere'")
----
maggiori dettagli li trovi nell'help di Access.
Ciao
-- 
Giorgio Rancati
[Office Access MVP]


guarda anche qui.
----
6.21 Passare un numero decimale ad una stringa SQL
http://www.donkarl.com/it/
----


[CUT]
Alla fine ho utilizzato la soluzione proposta da wladi :
DoCmd.RunSQL ("Update magazzino set qta=" & replace(str(totale),",",".") _
           & " Where articolo = 'pere'")
ho provato anche  con format  "#.00" ma restituisce sempre il numero con la 
virgola.
Grazie a tutti