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 FunctioSe 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: |