How do I display numbers in Fractional form on a report? Tables contain exact
decimal equivalent.
Copy the below function into a module.
Public Function DecimalToFrac(DecimalIn) As String
On Error GoTo Err_Handler
'Convert decimal to Fraction
Dim strWholePart As String
Dim varNumerator As Variant
Dim lngDenominator As Long
Dim intX As Integer
If IsNull(DecimalIn) Then
DecimalToFrac = ""
Exit Function
End If
strWholePart = Int(DecimalIn)
intX = InStr([DecimalIn], ".")
If intX = 0 Or IsError(Mid([DecimalIn], intX + 1)) Then
DecimalToFrac = strWholePart
Exit Function
End If
varNumerator = Mid(DecimalIn, InStr(DecimalIn, ".") + 1)
lngDenominator = 1 & String(1 * Len(varNumerator), "0")
Do While lngDenominator Mod 5 = 0 And varNumerator Mod 5 = 0
varNumerator = varNumerator / 5
lngDenominator = lngDenominator / 5
Loop
Do While lngDenominator Mod 2 = 0 And varNumerator Mod 2 = 0
varNumerator = varNumerator / 2
lngDenominator = lngDenominator / 2
Loop
DecimalToFrac = strWholePart & " " & varNumerator & "/" &
lngDenominator
Exit_Function:
Exit Function
Err_Handler:
If Err = 13 Or Err = 94 Then
Else
MsgBox "Error #: " & Err.Number & " " & Err.Description
End If
Resume Next
End Function
You can call it from an unbound control on your report:
=DecimalToFrac([FieldName])
i.e. 6.4 = 6 2/5