Newsgroup: it.comp.appl.access
Titolo: Numeri double in query di accodamento

Ciao a tutti,
mi sono scontrato col problema di costruire da codice una query di
accodamento per poi eseguirla inserendo valori double.
Quello che succede è che nella costruzione della stringa il valore double
viene aggiunto con la virgola invece che col punto. E' chiaro che
l'interprete SQL vedendo la virgola la interpreta come separazione fra un
campo e l'altro e non come indicarote dei decimali generando cosi' un
errore.
Quello che ho fatto e' stato di formattare in modo piuttosto laborioso il
numero sostituendo la virgola con un punto. Ma cosa si puo' fare di meglio?
Sib

"Sib dall'ufficio" <cerrise...@SPAMtiscalinet.it> ha scritto nel
messaggio news:3EOK7.3047$BA4.1...@news1.tin.it...

Non credi che una possibile soluzione (se conosci a priori il numero di
decimali, ad esempio 2) sia quello di moltiplicare per 100 il valore (avendo
un valore intero) per poi ridividerlo per 100?
Ciao
Roberto

 un valore intero) per poi ridividerlo per 100?
Si', e' una soluzione.
Ma come sempre cercavo di generalizzare. Con le conversioni delle lire in
euro, al momento, ho alcuni cari in cui non posso arrotondare per varie
ragioni, questo crea numeri con un numero imprecisato di decimali.
In effetti ho risolto in un modo piuttosto farraginoso, ho "stringato" tutto
e poi ho unito parte intera e parte fratta cosi':
ParteIntera & "." & ParteFratta.
Mi chiedevo, dato l'uso sfrenato che si puo' fare di stringhe sql con numeri
double, se esiste una funzione che semplicemente converta la virgola in
punto senza trasformare in stringa il tutto.
Ciao e grazie del suggerimento.
Sib

 ha scritto nel messaggio
news:3%TK7.145887$sq5.6...@news.infostrada.it...

Hai provato con
mid(a,instr(a,","))="."
--
Silvio
il sito comune di it.comp.appl.access:
http://www.sitocomune.com

 punto senza trasformare in stringa il tutto.
Magari fa al caso tuto un banalissimo
Replace(StringaColPunto, ".", ",")
oppure
Replace(CStr(Numero), ".", ",")
Max

 mid(a,instr(a,","))="."
Buon suggerimento, if effetti e' l'uovo di colombo.
Quando ho adottato quella soluzione ero in "pronto soccorso" da un cliente
che aveva una query che non gli funzionava.
Mi resta l'interrogativo: possibile che non ci sia un modo esplicito per
dire ad access di non usare la virgola ma il punto quando trasforma in
stringa un numerico all'interno del codice? (ovviamente senza cambiare le
impostazioni internazionali).
Ciao
Sib
--
----------------------------------------------------
la mia home:
http://digilander.iol.it/syb
----------------------------------------------------
il sito comune di it.comp.database.access:
http://www.sitocomune.com
----------------------------------------------------
4000 anni fa', il saggio egizio Ptahhotep scrisse:
"... perche' non esistono saggi per nascita."
------------------------------------------------------
Saturiamo ECHELON:
bomba saddam attentato medio oriente

 ha scritto nel messaggio

Buon suggerimento, non la conoscevo neanche la funzione replace (mai usata).
Provero'.
Mi resta l'interrogativo che ho inserito nella risposta a Silvio


 impostazioni internazionali).
Beh... forse facendo un programmino a basso livello che si installa come
autopartente, e che intercetta tutte le chiamate alle impostazioni
internazzionale.... riconosce le chiamate del tuo DB da quelle degli altro
programmi, ed a quelle del tuo DB passa il punto, agli altri quelle
impostate..... :-))))))))))))))))))
Max (si, ok, la pianto di dire stronzate.... :-)

 ha scritto nel messaggio

Ecco appunto! ;-)
Sib


In una stringa SQL per i valori con la virgola io avevo usato:
....AND Tabella.miocampo = CDbl('" & QuantitaConVirgola & "').
Ciao
--
Andrea