there quite a few approaches to solve this, here's one:
create a passthrough query (it doesnt matter what it is, it's just to hold all connection information so you dont need to enter it every time)
now add a public sub in code:
Public Sub ChangePTquerySQL(strSQL As String)
Dim qdf As DAO.QueryDef
Set qdf = DBEngine(0)(0).QueryDefs("qrySQLPassThrough")
qdf.SQL = strSQL
Set qdf = Nothing
End Sub
now you can call this sub every time with the full sql passthrough syntax, and then set the result to your needs. so in your example you use the after update event of adoptValue and cboLocation in the Forms!frmAdoptionList:
if isNull(cboLocation)=False And IsNull(adoptValue)=False Then
ChangePTquerySQL "Exec dbo.sp_sa_lstAdoption '" & cboLocation & "'," & adoptValue & ";"
then, if lstAdoption rowsource is set to "qrySQLPassThrough" then
Me.lstAdoption.Requery will do the trick
good luck