For anyone interested: this problem was solved with a procedure that opens the report in design view before it is opened in print preview. See code below. Thanks to all.
Code:
Public Sub SizeSubReportColumns(strReport As String, intColumns As Integer, dblWidth As Double)
'Opens the specified subreport and sets the report's width so that all the columns in the specified query
'can be fit into the specified width.
Dim intStrands As Integer
Dim r As Report
Dim c As Control
Dim dblColWidth As Double
'Set the size of the columns in the Subreport by:
'Opening the subreport in design view (hidden from the user)...
DoCmd.OpenReport strReport, acViewDesign, , , acHidden
'Setting a reference to that report
Set r = Reports(strReport)
'Calculating the width of each column based on the width of the subreport and the number of columns...
'(Note: 1440 = the number of twips in an inch. Access VBA measures width in twips.)
dblColWidth = (1440 * dblWidth) / intColumns
'Setting the width of all text boxes in the subreport to that column width...
For Each c In r.Controls
c.Width = dblColWidth
Next
'Setting the width of the report to the width of one column (dividing the width of the subreport by the # of columns)...
r.Width = dblColWidth
'and finally, saving and closing the subreport.
DoCmd.Close acReport, strReport, acSaveYes
End Sub