Why not save the query? Then you can build one, create the report based on it (since you said that the fields stay the same) and even though the query changes, Access will be happy.
I do something similar in a system that builds a customized passthrough query. I delete the old version, build the new one and save it and run it. The next person through overwrites the whole business, but you'd be surprised at how often I've had to have someone run their query, then get in quick make a copy of that sql to debug some trouble or another they've had (often because they didn't understand the data.)
The code that writes the query goes like this:
Dim myQ As QueryDef
Dim strQuery As String
' Delete the existing qCustomized_PT
On Error Resume Next
DoCmd.DeleteObject acQuery, "qCustomized_PT"
On Error GoTo My_Error_Routine
Set myQ = myDb.CreateQueryDef("qCustomized_PT")
' lots of other code here
' to build the query in strQuery
myQ.SQL = strQuery