Some of the other Access apps can record macros, but Access does not do
this.
There are times when the field names change - particularly with crosstabs.
But it might be possible to alias the fields in the query, or design it so
that the names don't constantly change. If that is not possible, you may
have to save the report with unbound controls, and write code in the
report's Open event to determine the actual fields and assign the
ControlSource of the text boxes, moving and resizing them as needed and
hiding the unused ones.
Before you go to that trouble, the most common reason we see convoluted
reports is that the person who designed the database did not normalize it
correctly. Breaking down a table with many fields into related tables with
many records might solve all the problems.
If you are not sure what normalization is, you could try the Table Analyzer
in Access. In Access 2007, it's on the Database Tools tab of the ribbon; in
earlier versions it's on the Tools menu.
If you want to read further, see #3 here:
http://allenbrowne.com/casu-22.html
The PDF for 'Normalizing Data' explains the basic.
Further reading:
http://www.accessmvp.com/JConrad/accessjunkie/resources.html#DatabaseDesign101