Through VBA you can add a few lines of code to the Report_Open event - for example;
Private Sub Report_Open(Cancel As Integer)
Dim DB As Database
Dim Q As QueryDef
Set DB = CurrentDb()
Set Q = DB.QueryDefs("MyAccessQuery")
Q.SQL = "exec dbo.mySQLSP " & Forms!frmReportOptions.txtCriteriaField
End Sub
This assumes (1) the Pass Through query has been saved in Access, and as MyAccessQuery, and (2) the query will execute a SQL stored-procedure with a single numeric parameter - a string parameter would need to be enclosed in single-quotes.
Note, the above code permanently changes the Access pass-through query, even though we don't actually 'save' it. For completeness - you can reset the pass-through query again when the report closes (in the Report_Close event), but it's not required.
Private Sub Report_Close()
Dim DB As Database
Dim Q As QueryDef
Set DB = CurrentDb()
Set Q = DB.QueryDefs("MyAccessQuery")
Q.SQL = "exec dbo.mySQLSP 0"
End Sub
😉
Chris