When you did that did the expression builder show startdate? Just checking to see you got the correct control name.
What is the error?
To make it a little easier you could put two calculated controls on your form and hide them.
txtMonth; = month([startdate])
txtYear: = iif(month([startDate]) > 7, year([startDate]) + 1, year([startDate]))
this way you can first check that you are getting the correct values
then reference txtmonth and txtyear in the query
Doing parameter queries and calculated ones are hard because you cannot debug easily. That could take a little out of it because you can verify at the form that the values are correct and make the query easier.