gpt4 book ai didi

ms-access - 3061 VBA 错误 - SQL 查询 "Too few parameters. Expected 1."简单查询

转载 作者:行者123 更新时间:2023-12-01 14:55:13 25 4
gpt4 key购买 nike

我有以下代码:

Private Sub lst1Model_Operation_Click()
Dim db As Database
Dim sSQL As String
Dim rst As Recordset

Set db = CurrentDb

sSQL = "SELECT * FROM qryOrder_Model_Operation_Value WHERE Model_Operation_ID = " & CInt(Me![lst1Model_Operation].Value)

Debug.Print sSQL 'when pasted this into a query SQL, it works flawlessly.

Set rst = db.OpenRecordset(sSQL) 'error line

'some code here

rst.Close
Set db = Nothing
End Sub

我不知道该怎么做。 Debug.Print 看起来像:

SELECT * FROM qryOrder_Model_Operation_Value WHERE Model_Operation_ID = 748

正如我所说,如果我将 Debug.Print 粘贴到 Access 本身的查询中,它会产生所需的结果。

我已经尝试在值周围添加 ' ',但使用 CInt() 我已经确保它被解析为整数。 Model_Operation_ID 还期望得到一个整数(否则它也不会在单独的查询中工作)。

编辑:qryOder_Model_Operation_Value 如下:

SELECT tbl1Model_Operation.Model_Operation_ID, tbl1Model_Operation.Model_ID, tbl1Model_Operation.Operation_Value_ID, tbl2Operation_Value.Operation_Name_ID, tbl3OperationsList.Operation_Name, tbl1Order_Model.Quantity AS [Počet párov], tbl1Order_Model.Order_ID
FROM tbl3OperationsList INNER JOIN (tbl2Operation_Value INNER JOIN (tbl1Model_Operation INNER JOIN tbl1Order_Model ON tbl1Model_Operation.Model_ID = tbl1Order_Model.Model_ID) ON tbl2Operation_Value.Operation_Value_ID = tbl1Model_Operation.Operation_Value_ID) ON tbl3OperationsList.Operation_ID = tbl2Operation_Value.Operation_Name_ID;

最佳答案

确保 Access 了解您希望 rst 成为 DAO.Recordset 而不是 ADODB.Recordset:

'Dim rst As Recordset
Dim rst As DAO.Recordset

ADO 和 DAO 对象模型都包含 Recordset 对象。尽管在某些方面相似,但它们不能互换使用。

当您的 Access VBA 项目引用包含 ADO 版本(ActiveX 数据对象)并且该引用的优先级高于 DAO 引用时,Dim rst As Recordset 将给你一个 ADODB.Recordset。通过始终使用 DAOADODB 适本地限定您的 Recordset 声明,避免不受欢迎的意外。

关于ms-access - 3061 VBA 错误 - SQL 查询 "Too few parameters. Expected 1."简单查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30082607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com