I realise this is a very old thread, but I found it because I had the same problem - subreports showing up in some views, but not printing. I seem to have worked out my issue:
My report is opened via a button on form. The form has a combo-box to choose which project I want. The button code says to filter the report against the choosen project.
HOWEVER, in the queries behind my subreports I had a "forms!frmStartUp!Combo02" filter for the project (was handy while I was designing).
When I click any button on my 'frmStartUp', combo02 (my project selector) resets to blank (I've never worked out how to prevent this).
Because the filter data is available to queries when I click the button, the report appears populated. When I click print, the data is no longer available (ie the subreports have no data, so naturally they print blank).
Since the code filters the main report on the project no, and the subs are linked by that project no, I've now removed the extra filter from the subs' queries. And it all seems to be working.