If you pass the control then probably have to also pass the source form name. Can get really complicated if you want to use with subforms. Pass the value and consider a Function instead of Sub.
Code:
Public Function Dimensions(strInput As Variant) As Variant
If IsNull(strInput) Then
'do nothing, user cleared the field and Null is acceptable
Dimensions = Null
ElseIf Val(strInput) < 25 Then
'25" is too small, force them to enter something larger.
MsgBox "Number too small."
Dimensions = Null
ElseIf Len(strInput) = 4 Then
'If the len() returns 4, they can only have entered an integer value...
' so, get rid of the / from inputmask.
Dimensions = Val(strInput)
ElseIf Len(strInput) > 4 Then
'If the len() is greater than 4, they must be trying to enter a fraction
' so, ensure it is a multiple of 1/8"
Select Case Right(strInput, 3)
Case "1/8", "1/4", "3/8", "1/2", "5/8", "3/4", "7/8"
Dimensions = strInput
Case Else
'They should only get this far if they entered something invalid.
MsgBox "You must enter a valid fraction in 1/8 inch increments", vbOKOnly, "Invalid Fraction"
Dimensions = Null
End Select
End If
End Function
Then call the function.
Private Sub txtDim1_AfterUpdate()
Me.txtDim1 = Dimensions(Me.txtDim1)
End Sub
This value is not used in calcs? This was an issue I faced in my development efforts. I put my foot down and declared "no fractions, only decimals".