I use this function to go to the last character in the field you can adapt it to your situation
Code:
Public Function PFLP()
'moves cursor to the last position of any field, used to prevent accidental overwriting of data
'SYNTAX: PFLP
On Error GoTo ERRHANDLER
If Screen.ActiveControl.Enabled = True Then
If InStr(Screen.ActiveControl.Tag, "ED") > 0 Then 'ED in the string indicates a date value
If IsNull(Screen.ActiveControl.Value) Then 'Empty Date
Screen.ActiveControl.SelStart = Screen.ActiveForm(Screen.ActiveControl.Name & "").SelLength
Else 'Date present with \ marks
Screen.ActiveControl.SelStart = Screen.ActiveForm(Screen.ActiveControl.Name & "").SelLength + 2
End If
Else 'other text or numeric field
Screen.ActiveControl.SelStart = Screen.ActiveForm(Screen.ActiveControl.Name & "").SelLength
End If
End If
Exit Function
ERRHANDLER:
Resume Next
End Function
it may be as simple as screen.activecontrol.selstart = 0 or screen.activecontrol.selstart = 1. I'm unsure how input masks may affect this. All you'd have to do is put in the ON ENTER property of the field pflp and possible in the ON CLICK event of the field as well.