【问题标题】:MS Access: No value given for one or more required parametersMS Access:没有为一个或多个必需参数提供值
【发布时间】: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


【解决方案1】:

已解决:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多