Hi bigriff
I'd approach this by passing a value via the reports OpenArgs property and then, in the On Open Event of the report use a Select Case to identify the argument passed and amend the properties of the controls to display the different formats you want.
e.g.
DoCmd.OpenReport strSelRpt, acViewPrevew, , stLinkcriteria, , strArgs
Where strArgs is 1,2 3, etc
Then in the On Open Event of the report (e.g.)
CODE
Select Case CInt(Me.OpenArgs)
Case 1
Me.SomeControl1.ForeColor = vbBlack
Me.SomeControl1.Fontsize = 10
Me.SomeControl1.FontName = "Arial"
Me.SomeControl1.Italic = True
Me.SomeControl2.ForeColor = vbBlack
Me.SomeControl2.Fontsize = 10
Me.SomeControl2.FontName = "Arial'
Me.SomeControl2.Italic = True
Case 2
Me.SomeControl1.ForeColor = vbBlue
Me.SomeControl1.Fontsize = 12
Me.SomeControl1.FontName = "calibri"
Me.SomeControl1.Italic = False
Me.SomeControl2.ForeColor = vbBlue
Me.SomeControl2.Fontsize = 12
Me.SomeControl2.FontName = "calibri"
Me.SomeControl2.Italic = False
Case 3
'etc.
End Select
If you needed different formats for each record printed out on a single report run, then you would need to include the formatting value in the reports recordset and then include the above code in the On Format / On print events of the section to be formatted, in this case instead of
Select Case Me.OpenArgs, you would refer to the field name defining the format (e.g
Select Case Me![FormatID])
hth