That's a database trigger not a UI trigger. This trigger is fired when the new value is being written into the table, not when the user is editing the value in a form. Usually, new values are not written to the table until the form is committed (e.g. you click OK).
So you can either, stick with what you have and just give focus back to the offending field:
IF pod_qty_ord > req_det.req_qty THEN
DO:
MESSAGE "Qty exceeds requisition qty".
APPLY "ENTRY" TO pod_qty_ord.
END.
Or you can setup an "ON LEAVE" trigger for the field. Whenever the field loses focus, the trigger will fire. But... it will also fire if the end-user cancels the form so your trigger code should only perform its validation when the Cancel button hasn't been pressed:
ON LEAVE OF pod_qty_ord
DO:
IF NOT v-cancel-pressed THEN
DO:
IF INPUT pod_qty_ord > req_det.req_qty THEN
DO:
MESSAGE "Qty exceeds requisition qty".
RETURN NO-APPLY.
END.
END.
END.