Well I was curious and sceptical but I think I have a solution although its a bit of a hack.
Here's a bare bones function definition, you'll need to play around with file names, columns, etc.
Public Function getExcelData() As Integer
Dim rst As Recordset
CurrentDb.Execute "delete * from excel1"
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel97, "excel1", "C:\temp\book1", 1, "A1:A2"
Set rst = CurrentDb.OpenRecordset("select parm from excel1"

getExcelData = rst![parm]
rst.Close
End Function
Now just put getExcelData on the criteria line.
Note: I originally had a deleteobject command to drop the table but it didn't like that so "excel1" needs to be permanent and hence the "delete" to clear out the table.
Good Luck,
Mike