Do the sorting in the query if it will be static. If not, provide a means (e.g. option buttons in a frame, command button, etc.) to cycle the sort. This you would handle in code by altering the form rowsource by changing the sort only, then requerying the form. If that sounds like a possibility, you should be able to get help here.
As for not updating, [Ref Date] is a field in the query? If so, try modifying dates in the query itself. If the calculation changes, you've done that part correctly. Not exactly sure what process you're referring to. You are not trying to save the calculation in a table through a select query, are you? Even if you could, it is very rare that you should be storing calculated values anyway, so I suspect that how to achieve this is kind of a moot point.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.