going to be calculating board feet, the formula is WxL \ 144 (11 7/8 x 12
7/8
Divided by 144 and the rusult will be shown in a seprit text box . I can
send
you the DB if that will help.
Ok... let's see if I can throw something together.
Assuming you have Text fields [Length] and [Width] containing strings like
"11 7/8" or "4 15/16" try creating a function in a public module:
Public Function FracToNum(strDim As String) As Double
Dim strFrac As String
Dim strNum As String
Dim dblNumerator As Double
Dim dblDenominator As Double
On Error GoTo Proc_Error
If InStr(strDim, " ") > 0 Then ' both number and fraction
strNum = Left(strDim, InStr(strDim, " ") - 1)
strFrac = Mid(strDim, InStr(strDim, " ") + 1)
Else ' only one piece: is it a number or a fraction?
If InStr(strDim, "/") > 0 Then ' just a fraction
strFrac = strDim
strNum = "0"
Else
strFrac = "0/1"
strNum = strDim
End If
End If
dblNumerator = CDbl(Left(strFrac, InStr(strFrac, "/") - 1))
dblDenominator = CDbl(Mid(strFrac, InStr(strFrac, "/") + 1))
FracToNum = CDbl(strNum) + dblNumerator/dblDenominator
Proc_Exit:
Exit Function
Proc_Error:
MsgBox "Error " & Err.Num & " in FracToNum:" & vbCrLf & Err.Description
Resume Proc_Exit
End Function
and as a bonus, found this in my module:
Public Function DecimalToFrac(DecimalIn) As String
'Convert decimal to Fraction
Dim strWholePart As String
Dim varNumerator As Variant
Dim lngDenominator As Long
Dim intX As Integer
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
End Function
John W. Vinson [MVP]