| Modules |
| 5.90 Arrotondare per eccesso un numero alla cifra decimale specificata |
| Giorgio Rancati |
|
Al contrario di Excel, in Access non esiste una funzione intrinseca che permetta l'arrotondamento per eccesso di un numero alla cifra decimale specificata. Inserendo però in un modulo standard di un database la funzione che segue, è possibile effettuare tale tipo di arrotondamento sia in un campo calcolato di una query che in un controllo calcolato di una maschera o di un report. Public Function Arrotonda_Eccesso(ByVal Numero As Double, Optional decimali As Integer = 2) As Double
'Numero =Numero in ingresso
'Decimali=Decimali desiderati
Dim result As Variant 'Risultato
Dim Nr As Variant 'Numero da trattare
Dim Dec As Integer 'Numero decimali
Dec = decimali
'Controllo massimo numero di decimali
If Dec > 10 Then Dec = 10
'Converto il numero in ingresso nel tipo decimal
Nr = CDec(Nz(Numero, 0))
'Tolgo l'eventuale segno negativo
Nr = Abs(Nr)
'Arrotondo
result = Nr * 10 ^ Dec + 0.99999
result = Fix(result) / 10 ^ Dec
'Riassegno l'eventuale segno negativo e rendo il risultato
Arrotonda_Eccesso = result * Sgn(Nz(Numero, 0))
End Functio
Se in una maschera il controllo che contiene la cifra da arrotondare si chiama Montante, se il controllo che contiene il numero dei decimali nel risultato arrotondato si chiama NumeroCifra e il controllo che deve contenere il risultato dell'arrotondamento si chiama appunto Risultato, il richiamo della funzione di cui sopra verrà effettuato con la seguente riga di codice VBA:Me!Risultato = Arrotonda_Eccesso(Me!Montante, Me!NumeroCifra) Se il numero dei decimali indicati nel richiamo della funzione di arrotondamento è minore o uguale a zero, nel risultato arrotondato tutti i decimali verranno tagliati e l'arrotondamento avverrà sulla parte intera della cifra da arrotondare. Se il numero delle cifre decimali è impostato a zero il risultato sarà una cifra intera arrotondata all'unità superiore. Se il numero delle cifre decimali è impostato a -1 il risultato sarà una cifra intera arrotondata alla decina superiore. Se il numero delle cifre decimali è impostato a -2 il risultato sarà una cifra intera arrotondata al centinaio superiore, e così via. Insomma, se la cifra da arrotondare è 654,321: se il numero dei decimali indicato è 2 il risultato sarà 654,33 se il numero dei decimali indicato è 1 il risultato sarà 654,4 se il numero dei decimali indicato è 0 il risultato sarà 655 se il numero dei decimali indicato è -1 il risultato sarà 660 se il numero dei decimali indicato è -2 il risultato sarà 700. Il valore del numero delle cifre decimali alle quali effettuare l'arrotondamento deve essere compreso tra 10 e -10. Download: |