tomdible
By default, all dates entered are assumed by the program and the OS to be for the current year.
Let's take today 2013-12-18 and your example that you are entering a January date. That you want to enter 01/05 (mm/dd) and have the system assume that you mean 2014-01-05 and not 2013-01-05 is only logical if and only if there would never be a time when today (or later) you would not actually need to enter 2013-01-05.
Seth is fairly close in code.
Neopa is correct in that the date needs to be evaluted at the point of entry.
Here's what I would do:
On the form, checkbox, with title: "set all dates from Jan thru October for next year", default unchecked, default hidden (the caption could be changed in the onload event for thru nov if current Month() is dec)
At the declarations level of the form have a boolean for "henpeckonce"
On Load event, check current date Month() if November or December then Checkbox is set true and made visible and "henpeckonce" set to true
Before update event check for the for the control:
1) if the checkbox is visible the proceed to 2 else bail
2) if Henpeck is true and the checkbox is true then msgbox to remind them that the checkbox is toggled true and that dates with Jan thru Oct (with conditionl we can change the string to Jan thru Nov) will be entered for next year, is this OK, use the YES/NO buttons with NO defaulted.
2a) if vbYes, then set Henpeck to false and proceed
2b) if vbNo, then set Henpeck to false, set the checkbox to false, and bail
3) if the checkbox is true then check the date entered, if the Month() Jan thru Oct (or nov if current dec) then check the year:
3a) if year<current then prompt for action
3b) if year=current then +1
3c) if year>current then leave alone
I leave the code for OP