Perhaps you can use a form to open your report or send the report directly to the printer. If you use VBA to do this, you can add WHERE criteria to the VBA statement.
Something like
docmd.openreport "rptMyrpt" ,acViewPreview,,"[IDfieldInTable]=" & IDcontrolName
If you have trouble with the where criteria, you could try using your form's intrinsic filter tools to filter the one record you want. Then you could prigramaticly pass the filter property to your WHERE criteria.
Code:
Dim strWhere As String
strWhere = Me.Filter
MsgBox strWhere
Debug.Print strWhere
DoCmd.OpenReport "rptName", acViewPreview, , strWhere