If you want the report to print the records in the order you selected them,
you will need to record that order somewhere.
You could do that by adding a field of type Number. Then use the
BeforeUpdate event of the form to compare the OldValue of the check box to
the Value, and if it changed, set the number field. You can then sort the
report by the number field.
This example assumed a yes/no field named IsPicked, and a Number field named
SortOrder, in a table named Table1:
Private Sub Form_BeforeUpdate(Cancel As Integer)
With Me.IsPicked
If .Value = .OldValue Then
'do nothing: nothing changed.
Else
If .Value Then 'Get the next available number.
Me.SortOrder = Nz(DMax("SortOrder", "Table1"),0) + 1
Else 'It was unpicked: clear the number.
Me.SortOrder = Null
End If
End If
End With
End Sub
If you have multiple users all selecting values simultanesously, you will
need to add a local table, and use Form_BeforeUpdate to execute an
Append/Delete query statement. The local table will contain just two fields:
the primary key value and the sort order. The report will inner join this
table to the main one for the report.