Access 2003 Report data format

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

How do I display numbers in Fractional form on a report? Tables contain exact
decimal equivalent.
 
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
 
Back
Top