Use the BeforeUpdate event of the *form*, not the check box. The event for
the check box will not fire unless the user does something with it.
So you will need something like this in the BeforeUpdate event of the
subform:
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Me.Parent!PO_flag.Value Then
If IsNull(Me.PO_no) Then
Cancel = True
MsgBox "PO_no required..."
End If
End If
End Sub
Note that a checkbox has the value True or False, which is not the same as
the text "Y".

Signature
Allen Browne - Microsoft MVP. Perth, Western Australia.
Tips for Access users - http://allenbrowne.com/tips.html
Reply to group, rather than allenbrowne at mvps dot org.
>I have a check box field in my Main form called "PO_flag." On my subform,
>I
[quoted text clipped - 18 lines]
>
> Thank you!