what I have seen is changing the database that the ODBC connection is pointing to, otherwise you need to change things in the report that cannot be done dynamically.
As an alternative, I have used an OLE connection which changed more easily, but the best option, if you can manage it is:
have an application that gathers the data (it is probably much easier to gather this information correctly) and then 'push' the data to the report. Report doesn't know or care where the data came from.
HTH