Search code examples
sqlms-accessselectsubquery

Why am I getting “Enter Parameter Value” when running my MS Access query?


SELECT ID, 
       Name, 
       (SELECT CityName 
        FROM City 
        WHERE Employee.CityID = City.CityID) AS [City Name] 
FROM Employee 
WHERE [City Name] = "New York"

I'm about selecting all employees who come New York but whenever I run the query, I always get a “Enter Parameter Value” box. How can I fix this?


Solution

  • This is because Access does not allow you to use field aliases in the query - it does not recognize [City Name] as a valid field name. Aliases are only used as field names in the result set. Rather, you need to use the entire expression.

    As such, this query would probably be more easily defined in Access as:

    SELECT ID, 
           Name, 
           CityName AS [City Name]
    FROM Employee INNER JOIN City
        ON Employee.CityID=City.CityID
    WHERE CityName = "New York"
    

    Also, 'Name' is a reserved word - using it as a field name is not suggested.