Легким и быстрым является запрос Passthrough, но вы должны позаботиться о том, чтобы передаваемые аргументы были действительными, поскольку вы просто сопоставляете имя sp с ними.
Рассмотрите возможность изменения cMonth на дату, затем оцените месяц в sp .
Код для создания запроса PT:
Private Sub CreatePTProofofJobScott(StartJob As Long, cMonth As String)
Const QueryDefName As String = "PTProofofJobScott"
With CurrentDb
Dim QdfExists as Boolean
Dim qdf As DAO.QueryDef
For Each qdf In .QueryDefs
If qdf.Name = QueryDefName Then
QdfExists = True
Exit For
End If
Next
If Not QdfExists Then
.CreateQueryDef(QueryDefName)
End If
With .QueryDefs(QueryDefName)
.Connect = "ODBC;DSN=yourDsnToSqlServer" 'or Conn-String https://www.connectionstrings.com/microsoft-odbc-driver-17-for-sql-server/
.SQL = "EXEC mysp_ProofofJobScott " & StartJob & ", '" & cMonth & "'"
End With
End With
End Sub
Использование в событии Report_Open с требуемыми аргументами:
Private Sub Report_Open(Cancel As Integer)
CreatePTProofofJobScott Split(Me.OpenArgs,";")(0), Split(Me.OpenArgs,";")(1)
Me.RecordSource = "PTProofofJobScott"
End Sub
Передача аргументов в OpenArgs при открытом cmd
DoCmd.OpenReport "yourReport",acViewPreview,,,,"1234;February 2020"
Для дальнейшего развития вы должны взглянуть на SSRS , как отметил FoggyDay