Which event would depend on what it is you're trying to accomplish. Maybe Current event of the subform? I've read it a few times and can't figure that out.
As for the first part, if the action for each combo is pretty much the same, then create a function and pass to it whatever you need to. You can pass the combo name, it's value, it's old value, a column value, a pair/set of variables or values, etc. etc. But I can't figure that out either because after looking at your code, it seems that all it does is assign the sql of a stored query to a variable (strSQL) then does nothing with it. I don't see how that could modify the stored query's sql property, so what is there to refresh?
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.