Newsgroup: it.comp.appl.access
Titolo: decimali senza virgola.

Ciao !
ho bisogno di settare un campo numerico
con 2 decimali senza virgola.
Es.
1570,98 -->diventa-->00157098
Grazie :o)

 ha scritto nel messaggio
news:GvBcb.119270$hE5.4...@news1.tin.it...

Ho provato a realizzare una funzione per te.
Fammi sapere se funziona.
Public Function TrasformaNumero(UnNumero As Double)
'1570.98
Dim pos As Integer
pos = InStr(1, CStr(UnNumero), ",")
TrasformaNumero = Mid$(CStr(UnNumero), 1, pos - 1) & Mid$(CStr(UnNumero),
pos + 1, Len(CStr(UnNumero)))
TrasformaNumero = Format(TrasformaNumero, "00000000")
End Function
Ciao, Carlo

Franz ha scritto:

Cosa vuol dire "settare un campo"?
Devi creare un campo in una tabella?
Hai già un campo e devi inserirci i valori?
Hai già parecchi record con la virgola e li vuoi trasformare in numeri
senza virgola?
I decimali sono solo due o possono essere di più, e in caso vanno
arrotondati o troncati?
E il campo ti serve di tipo numerico o testo, visto che ci sono degli zeri
davanti?
Comunque per realizzare 1570,98 -->diventa-->00157098 io farei
numero = format(numero * 100, "00000000")
Namor
-- 
 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Franz ha scritto:

NrIntero=NrConVirgola * 10 ^ (Len(Str$(NrConVirgola)) - 
InStr(Str$(NrConVirgola), "."))
Per gli zeri davanti prova con la formattazione
byez
-- 
Claudio(BS)
per rispondere aggiungi claudio
°°° Posted from X-Privat Free NNTP server - 
www.x-privat.org
 °°°

dunque ... innanzitutto grazie per la vs disponibilitŕ.
Mi spiego meglio.
Ho dei campi espressi in euro che dovrei
formattare nel modo di cui sopra e cioč,
il valore immesso nel campo dovrebbe essere
* 1570,98
ma appena mi sposto nel record successivo dovrebbe diventare
* 00157098
i decimali sono solo due e non vanno arrotondati;
i due zero davanti possono essere anche opzionali.
Avevo provato in origine controllo della mask:
[campointeressato]*100
ma mi restituisce un errore.
Sono certo che tutte le vs soluzioni siano giuste,
ma il problema č che non capisco dove dovrei
inserire il codice che avete elaborato.
Grazie in ogni caso :o)

 ha scritto nel messaggio
news:E1Icb.167452$R32.5...@news2.tin.it...

Nell'evento dopo_aggiornamento (afterupdate) dela casella che contiene il
numero.
me.casella=me.casella*100  'se il campo č di tipo numerico
me.casella=format(val(me.casella)*100,"00000000")  'se č di tipo testo
Namor

> me.casella=format(val(me.casella)*100,"00000000")  'se è di tipo testo
Ok ci sono, grazie
una ultima domanda
come posso evitare l'arrotondamento?
es.
125.25 --> 0012525
non
125.25 --> 0012550
;)

 125.25 --> 0012550
Niente da fare :(
deve essere per forza di tipo numerico, e quindi:
* me.casella=me.casella*100  'se il campo è di tipo numerico
dal momento che devo poter sommare almeno 4 di questi campi.
Rimane il problema dell'arrotondamento.

 ha scritto nel messaggio
news:%oJcb.168031$R32.5...@news2.tin.it...

me.casella=int(me.casella*100)
Ma questo non arrotonda i decimali, li tronca.
C'era una funzione per arrotondare mandata da Karl non più di due settimane
fa, vedi se la trovi oppure.... Kaaarl..... aiutooo.....  ;-)
Namor

 Namor
Grazie ^_^
ovviamente seguiro il tuo consiglio ...
[...]
Kaaaaarll  = :-O

 ha scritto nel messaggio
news:8MIcb.167764$R32.5...@news2.tin.it...

me.casella=format(nz(me.casella,0)*100,"00000000")
bye :o)