【问题标题】:Too few parameters error MS Access SQL参数太少错误 MS Access SQL
【发布时间】:2015-05-09 17:12:46
【问题描述】:

我收到一个运行时错误:参数太少:预期为 2。

此代码应该让下一位员工排队接受分配。员工[programs][Language] 必须匹配表CFRRR 中的[program][language]

strSQL = "SELECT TOP 1 WorkerID FROM attendance WHERE [Programs] LIKE '*" & program & "*' AND [Language] = '" & Language & "' AND [Status] = " & ("Available") & " ORDER BY TS ASC"
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)

这是Debug.Print strSQL 向我展示的内容:

SELECT TOP 1 WorkerID FROM attendance WHERE [Programs] LIKE '*program*' AND [Language] LIKE '*Language*' AND [Status] = Available ORDER BY TS ASC

【问题讨论】:

  • 你试过在状态周围加上单引号吗?:'Available'
  • 我只是这样做了,得到了同样的错误,除了这次它说预期 1,这是 debug.print:SELECT TOP 1 WorkerID FROM attendance WHERE [Programs] LIKE '*program*' AND [Language] LIKE '*Language*' AND [Status] = 'Available' ORDER BY TS ASC

标签: sql ms-access vba ms-access-2010


【解决方案1】:

假设您希望 [Status] 匹配单词 Available,请将引号添加为 Mark suggested ...

SELECT TOP 1 WorkerID FROM attendance
WHERE [Programs] LIKE '*program*' AND [Language] LIKE '*Language*' AND [Status] = 'Available'
ORDER BY TS ASC

但是,这仍然留下一个“参数”下落不明。在 Access 查询设计器中创建一个新查询。切换到 SQL 视图并粘贴到您的语句文本中。

当您尝试运行该查询时,Access 将弹出一个输入对话框,要求您为参数提供一个值。该对话框还包括 Access 假定为参数的词。

将该词与您的 SQL 语句进行比较。它通常是拼写错误的对象(字段或表)名称、函数或 SQL 关键字。在这种情况下,我无法发现函数或关键字错误,因此会猜测问题出在字段或表名上。

【讨论】:

  • 那行得通。我发现了我的错误,它甚至不是我想的那样,但现在我有另一个错误。它是说它找不到我引用的表格 CFRRR 并且那里肯定有一个表格。我应该再问一个问题吗?
  • 嗯。 CFRRR 没有在查询中提及,这让我很惊讶。您是否可能需要一个连接 attendanceCFRRR 的查询?如果是这样,是的,我认为这是一个不同的问题。
  • 你是对的。这是关于我的另一个问题。我再问一个问题。
  • 好的。积极的一面是,您的问题每次都在变得更好。 :-)
  • 哈哈哈哈对!我觉得我开始越来越明白了。这是我的另一个问题。我在我的牢房里,所以我不知道结果是不是很奇怪。我觉得很奇怪哈哈stackoverflow.com/questions/30143343/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多