Strange. Not sure what would cause it to fail in one view but not the other.
The error means that Access is not able to understand an expression. One
possible cause is that the data type is being understood incorrectly. If
this is what's happening, you may need to explicitly typecast calculated
fields in the report's RecordSource query, or set the Format property of
text boxes that are unbound or bound to expressions, so that Access
understands the data type. More info in:
Calculated fields misinterpreted
at:
http://allenbrowne.com/ser-45.html
Do you have any code in the report's module? If so, you may need to reset
some module-level variables in the Report Header section's Format event, so
they get reset between previewing and printing. Also, be careful not to
assign bad data types. For example, if you have a numeric value, don't
assign a zero-length string to it, becuase it would then no longer be a
number and any attempt to treat it as a number in another text box (such as
a total) would yield an error.
The fact that it is the subreport that falls off may indicate that the
problem is either in the subreport or its grouping expressions, or perhaps
in the LinkMasterFields/LinkChildFields properties of the subreport control.
It is remotely possible that this is due to a faulty printer driver. You
could test this by trying a different printer.
If none of that works, you might need to take the divide'n'conquor approach.
Remove things until it works, and then you can pin down where the problem
lies.