În MS Access pot fi situaţii, mai rar, când nu se doreşte rotunjirea unor valori numerice (spre exemplu medii şcolare), ci trunchierea – eliminarea unor zecimale. Deoarece nu avem o funcţie anume, se poate forţa afişarea din valoare numerică în valoare de tip text. Deşi se poate folosi funcţii direct (ca în ex. 1) într-o interogare, raport sau formular, mai recomandabil ar putea fi prin crearea unei funcţii VBA, precum în ex. 2.
Exemplul 1 – Afişarea dorită prin intermediul funcţiilor pentru text (InStr, Left, Mid)
1 2 3 |
SELECT [nr] , IIf(InStr([nr],",")>0,(Left([nr],(InStr([nr],",")))) & (Mid([nr],(InStr([nr],",")+1),2)),[nr]) AS transf FROM tabela |
Folosirea unei funcţii VBA permite mai uşor anumite rafinări; de exemplu, dacă dorim ca toate notele să aibă două zecimale, chiar şi dacă este doar număr întreg, excepţie făcând nota 10.
Exemplul 2 – Funcţie VBA
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Function f_trunc2zec(nota As Double) As Variant Dim valoare As String, delim As String delim = "," ' dupa caz, poate fi punct sau virgula, in functie de Setarile Regionale If InStr(nota, delim) > 0 Then valoare = Left(nota, (InStr(nota, delim))) & Mid(nota, (InStr(nota, delim) + 1), 2) Else valoare = nota End If If nota = 10 Then f_trunc2zec = CDec(Format(valoare, "#")) Else f_trunc2zec = (Format(valoare, "#.00")) End If End Function |