Arvi, I don't think the Round() function in Access 2000/2002 does banker's
rounding. The one by Ken Getz at:
http://www.mvps.org/access/modules/mdl0054.htm
provides that optionally.
The built-in one just works with whatever data type you pass in. That means
if you pass it a Double, it is subject to the rounding errors that always
dog floating-point numbers. If you need to avoid that, you can typecast the
variable into a Variant of subtype Decimal so you have a scaled number to
work with instead of a floating-poing one.
This function demonstrates the values that are returned differently if you
use scaled numbers. Change the constant to 3 or 4 to see the affected
numbers with more decimal places.
Function TestRound()
Dim lngI As Long
Dim lngFactor As Long
Dim dbl As Double 'Fractional value as Double.
Dim var As Variant 'Fractional value as Decimal.
Const conPlaces As Integer = 2
lngFactor = 10 ^ (conPlaces + 1)
For lngI = 1 To lngFactor
dbl = Round(lngI / lngFactor, conPlaces)
var = Round(CDec(lngI) / CDec(lngFactor), conPlaces)
If var <> dbl Then
Debug.Print dbl, var
End If
Next
End Function