Newsgroup: it.comp.appl.access
Titolo: problema foruma calcolo iva

Slave a tutti un pgm fatture fatto con access 2003 deve calcorare in 
automatico l'iva sommando alcuni importi : compenso+cassa_rag *20/100
ho scritto la seguente formula:
Me.txt_Importo_iva = CLng((Me.txt_compenso + Me.txt_Importo_Cassa) * 
Me.txt_IVAperc) / 100
problema: il compenso piu' l'importo e' 102 , l'iva al 20 dovrebbe essere 
20.40 ed invece access mi scrive 20,00
La proprieta' del campo iva e' formato standard, decimali 2
dOVE sbaglio??
gRAZIE a tutti.
alex

"alex" <aiaiai...@aiaiaiaiaai.jak> ha scritto nel messaggio 
news:46bb1149$0$4797$4faf...@reader4.news.tin.it...

Dovrebbe andare
Me.txt_Importo_iva = CLng((Me.txt_compenso + Me.txt_Importo_Cassa) * (1+( 
Me.txt_IVAperc) / 100))
Ferrari Rino 


Siamo sicuri che l'uso di dati Long per calcoli finanziari sia
giusto...?
Long è un INTEGER... senza le virgole...!!!!
Non è che sarebbe meglio un Currency...?
@Alex

On 9 Ago, 15:02, "alex" <aiaiaiaia...@aiaiaiaiaai.jak> wrote:

Ciao
Prova questa
"imposta = (CLng(importo) + CLng(compenso)) * (ivap / 100)"
credo che l tua espressione non vada bene perchè hai dimenticato un
clng prima del valore cassa
Ciao
SMP

Siamo sicuri che l'uso di dati Long per calcoli finanziari sia
giusto...?
Long č un INTEGER... senza le virgole...!!!!
Non č che sarebbe meglio un Currency...?
anche mettengodli ccur mi da sempre 20,00 pero'
@Alex

On 9 Ago, 15:02, "alex" <aiaiaiaia...@aiaiaiaiaai.jak> wrote:

Ciao
Prova questa l'ho testata e funziona correttamente.
"imposta = (CLng(importo) + CLng(compenso)) * (ivap / 100)"
Il tuo errore è:Clng(val1+val2)
qui access converte il risultato di una somma "sbagliata" che genera
l'errore sul calcolo dell'iva
quello giusto è: clng(val1)+clng(val2)
qui access esegue la somma dei due valori convertiti ed il calcolo
dell'iva funziona.
Ciao
Roberto
SMP

 @Alex
Allora è un problema di visualizzazione della TextBox... vedi quanti
decimali ha...!
Fai una prova nella finestra immediata(CTRL+G)
?Ccur((102 * 20) / 100)
Anche se con clng sembra funzionare... fai attenzione.. prova questo:
Corretto come conto ma non corretto realmente...
?Clng(102.55 * 20)/100
 20,51
Ovviamente errato
?Clng(102.55 * 20/100)
 21
Corretto...!!!!
?Ccur(102.55 * 20/100)
 20,51
Saluti
@Alex


Sei certo di quello che dici...?
Scusa ma hai verificato cosa è un numero LONG...?
Da quando i calcoli economici si fanno togliendo i decimali...?
Clng(val1+val2) Ovviamente sono diversi clng(val1)+clng(val2)
val1=10.6
val2=10.6
?clng(10.6)+clng(10.6)
 22
?clng(10.6+10.6)
 21
Entrambi sono SBAGLIATI perchè il risultato dal punto di vista
contabile
è questo:
?ccur(10.6+10.6)
 21,2
@alex

Allora è un problema di visualizzazione della TextBox... vedi quanti
decimali ha...!
ha due decimali ed e' standard quindi dovrebbe andare alla perfezione.
nella finestra immediata mi riporta 20,4 quindi giusto.

Sei certo di quello che dici...?
si sono certo e anche con il ccur ho lo stesso problema :(

l'ho beccata grazie a tutti!!
nella tabella era settato come numero intero lungo.

 si sono certo e anche con il ccur ho lo stesso problema :(
Non parlavo con te... spero però che tu abbia capito il concetto.
@Alex

 nella tabella era settato come numero intero lungo.
Capita...
@Alex

 - Mostra testo tra virgolette -
Certo che ho verificato e se imposti la casella del risultato in Euro
ottieni come da esempio postato:
clng(val1)=100
clng(val2)=2
imponibile=clng(val1)+clng(val2)=E 100+E 2=E 102
iva= imponibile* 20/100=E 20.40
non credo che il risultato sia diverso da quello di una normale
calcolatrice.
Ciao


Ciao @Alex
Scusa stavo lavorando ad un altro progetto ed ho confuso le scritte
volevo dire che funziona usando ccur e cdbl
non con "clng"
Comunque e sicuramente solo eseguendo la conversione dei due campi
singolarmente e prima di sommarli.
Ciao