MS Access:没有为一个或多个必需参数给出值

msk*_*msk 2 vbscript ms-access asp-classic

我正在尝试对 MS Access 数据库运行以下查询(从 .asp 页面):

SELECT firstname, lastname, emp_id FROM employees ORDER BY firstname
Run Code Online (Sandbox Code Playgroud)

但是,我收到一条错误消息

没有为一个或多个必需参数给出值。

现在,如果我排除“emp_id”(主键)字段,查询运行正常。我已确保该字段存在并且查询中没有拼写错误。

如果我通过 MS Access GUI 运行查询,则会弹出一个窗口,要求我为 emp_id 字段输入“参数值”。这可能就是它不起作用的原因,以及为什么会发生这种情况?

从数据库获取员工:

Function GetEmployees()

    Dim employeesRS, sqlGetEmployees, employeesList, e

    Set employeesList = CreateObject("System.Collections.ArrayList")

    sqlGetEmployees = "SELECT firstname, lastname, emp_id FROM employees ORDER BY firstname"

    Set employeesRS = db.connTb.execute(sqlGetEmployees) 'Custom class to simplify db-querying

    While Not employeesRS.EOF

        Set e = new Employee

        e.Firstname = employeesRS("firstname")
        e.Lastname = employeesRS("lastname")
        e.Id = employeesRS("emp_id")

        employeesList.Add(e)

        employeesRS.MoveNext
    Wend

    employeesRS.Close

    Set GetEmployees = employeesList

End Function
Run Code Online (Sandbox Code Playgroud)

表结构的屏幕截图:(正如您可能注意到的,我在帖子中翻译了表和代码,以使其更具可读性。不过,代码/表字段之间的关系是相同的。)

在此输入图像描述

msk*_*msk 6

解决了:

MS Access 中的查询结果视图显示字段名称为“emp_id”,但实际名称为“employee_id”。

使用数据库的程序曾经是一个 Access-forms 应用程序,因此查询结果视图中的列名称与实际名称不同(出于某种原因,我不知道为什么这听起来是个好主意)