In the recorsource of your report, you can add a function call to filter what it is displaying to match your selection from the form. To do this, under ContractID in the recordsource query of the report add:
IIF(fnContract()=0,[ContractID],fnContractID())
Change ContractID to whatever you have in your actual query.
Also, in a module have:
Function fnContractID() As Variant
On Error GoTo 10
Dim ValueFromTheForm As Variant
ValueFromTheForm=Nz(Forms!EnterYouFormNameHear!txtContactIDselected,0)
' change EnterYouFormNameHear and txtContactIDselected to whatever you have on your form
Debug.Print ValueFromTheForm 'make sure this value is reported correctly then remove this line
fnContractID = ValueFromTheForm
Exit Function
10:
fnContractID = 0
End Function
Mike