I use the following OnClick code attached to a button on the form....
Assuming you use a unique identifier - mine was "ID" the code below should work for you. It saves the record if it needs to, makes sure it's not a new record (blank) and then selects the current record by ID and assigns data to variable strWhere and then opens a your report "ReportName" as a preview, and passes data to it.
Code:
Private Sub cmdPrint_Click()
Dim strWhere As String
If Me.Dirty Then 'Save any edits.
Me.Dirty = False
End If
If Me.NewRecord Then 'Check if blank record
MsgBox "Select a record to print"
Else
strWhere = "[ID] = " & Me.[ID] 'Selects current form data
DoCmd.OpenReport "ReportName", acViewPreview, , strWhere
End If
End Sub