You want to filter form to selected year then further filter for a record in that year? You want to prevent form navigation to prior years? I don't do this in my db. I have the form RecordSource order records descending by date so the most recent show at top but users can scroll to older records. Maybe someday the dataset will be big enough to cause slow performance on this form and will have to change but don't expect that to happen for a long time. The form has a search utility to allow entering record ID for any year record. This is not a data entry form, it is a search/view only and task execution form.
Are you using form/subform arrangement? Where is OpenArgs set?
If you want to provide db for analysis, follow instructions at bottom of my post.
EDIT: now see your new post. I didn't notice the variable was declared a string, assumed RetYear was number field. I prefer apostrophes, easier for me to read:
Me.Filter = "RetYear = '" & CurYear & "'"