You cannot change the RecordSource of a report once it has started
printing/previewing.
The last opportunity you have is the Open event of the report. You could use
this event to look at some control on a form and decide what RecordSource to
use (e.g. a Select Case statement in code). Alternatively, in Access 2002 or
2003 you could pass the name of the table in the OpenArgs of OpenReport, and
then assign it in Report_Open.
There is a more basic issue here, though. If you are trying to assign
different table names to the same report, it sounds like you have several
tables that all have the same structure, such as one table for January,
another for Februrary, or one table for the North region, another for South,
.... If you do have more than one table with the same structure, the best
solution would be to put them all into one table, with an extra field to
distingiush the records (e.g. a field for the date, or a field for the
region.) The issue of reassigning the report's RecordSource to a different
table then disappears, and you just use the WhereCondition of the OpenReport
action to show the records for January or the North region, or whatever.