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:
 
  ArrotondaEccesso.zip (19Kb) MSAccess97 database


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.