我正在尝试将以下查询运行到MS Access数据库(来自.asp页面):
SELECT firstname, lastname, emp_id FROM employees ORDER BY firstname
但是,我收到错误
No value given for one or more required parameters.
现在,如果我排除“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
表结构的截图:(您可能已经注意到,我在我的帖子中翻译了表和代码,以使其更具可读性。但代码/表字段之间的关系是相同的。)
答案 0 :(得分:4)
解决:
MS Access中的查询结果视图显示字段名称为" emp_id",但实际名称为" employee_id"。
使用数据库的程序曾经是一个Access-forms应用程序,因此在查询结果视图中的列上的名称与实际名称不同(出于某种原因,我不知道为什么这听起来像是一个好主意)