【发布时间】:2015-02-19 17:43:37
【问题描述】:
我正在尝试对 MS Access 数据库(从 .asp 页面)运行以下查询:
SELECT firstname, lastname, emp_id FROM employees ORDER BY firstname
但是,我收到一个错误提示
没有为一个或多个必需参数指定值。现在,如果我排除“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
表格结构截图:(你可能注意到了,我在帖子中翻译了表格和代码,以使其更具可读性。但代码/表格字段之间的关系是相同的。)
【问题讨论】:
-
当您通过 MSAccess 运行它并收到参数提示时,表中没有名为 emp_id 的字段。确保它确实是 emp_id 而不是 empid 或其他东西
-
我已经检查了一遍又一遍。该字段存在:/
-
就像@SearchAndResQ 所说,当您在Access 中运行它时,它不会将
emp_id识别为表字段,因此假定它是一个输入参数并要求一个值。能否展示一下表格结构(employees),或者是 Access 中设计视图的截图? -
看你发的截图,
Ansattnr是别名还是表中的列名?如果您将表格设计视图发布为屏幕截图而不是表格内容会更好。 -
@Lankymart 你是对的。我在看到你的回复之前就想通了。 Ansattnr 确实是一个别名,我不知道你可以这样做:S
标签: ms-access vbscript asp-classic