For what it is worth, in the past I have setup different data validation functions (instead of subs) to validate form entries. This way you can call them at different times based on different criteria. e.g.
Code:
Private Function validate_Tab2(optional Var_ToDoSomethingDifferent) as Boolean
'Use Var_ToDoSomethingDifferent to skip steps etc.
'criteria and fields to check
'code to go through things
'if everything passes then
validate_Tab2=TRUE
end function
And then in the Form Subs
Code:
Private Sub Form_BeforeUpdate(Cancel As Integer)
if validate_Tab2 then
'Tab2 validation passes
else
'Tab2 validation fails
msgbox("Tab 2 validation fails!")
Cancel = True
end if
If IsNull(Me.YourOptionGroupName) Then
Cancel = True
YourOptionGroupName.SetFocus
MsgBox "A Letter Option Must Be Selected!"
End If
exit sub
End Sub