错误:参数太少。在Access中执行SQL语句时应为3
我以前做过这项工作,只是在插入新记录之前测试表中是否已经存在记录。这基本上就是我所做的,但这次我犯了一个错误错误:参数太少。在Access中执行SQL语句时应为3,sql,ms-access,vba,Sql,Ms Access,Vba,我以前做过这项工作,只是在插入新记录之前测试表中是否已经存在记录。这基本上就是我所做的,但这次我犯了一个错误 Error: "3061 Too few parameters. Expected 2." 我试图非常具体地(tblfromICPMS.Woid而不仅仅是Woid)考虑这可能会有所帮助,但这并没有真正起作用。我在生产线上得到了明确的信息 If rs.RecordCount = 0 Then 这是代码,其中ThisWoid、Analyte和ThisTestId是局部变量: DIM rs
Error: "3061 Too few parameters. Expected 2."
我试图非常具体地(tblfromICPMS.Woid
而不仅仅是Woid
)考虑这可能会有所帮助,但这并没有真正起作用。我在生产线上得到了明确的信息
If rs.RecordCount = 0 Then
这是代码,其中ThisWoid、Analyte和ThisTestId是局部变量:
DIM rs As Object
strSQL = "SELECT tblfromICPMS.Woid, tblfromICPMS.Analyte, tblfromICPMS.TestID FROM tblFROMICPMS WHERE (tblFROMICPMS.woid = " & ThisWoid & ") AND (tblFROMICPMS.analyte = " & Analyte & ") AND (tblfromICPMS.Testid=" & ThisTestID & ") "
Set rs = CurrentDb.OpenRecordset(strSQL)
If rs.RecordCount = 0 Then
"insert record"
End IF
更新:在注释中更新sqlstr后,错误消息更改为1,还包括rs声明。为了澄清,tblFromICPMS是一个包含Woid、分析物和TestId列的表格。我检索了三个值,并将它们存储在局部变量ThisWoid、Analyte和ThisTestId中。我想插入一条记录,但首先我必须查看它是否已经存在于tblfromICPMS中。此外,ThisWoid和Analyte都是字符串。首先,我会尝试将rs作为记录集而不是对象来缩小。另外,请插入一个消息框,以确保您的SQL字符串有意义:
DIM rs As Recordset
strSQL = "SELECT Woid, Analyte, TestID FROM tblFROMICPMS WHERE (woid = " & ThisWoid & ") AND (analyte = " & Analyte & ") AND (Testid=" & ThisTestID & ") "
msgbox strSQL
Set rs = CurrentDb.OpenRecordset(strSQL)
If rs.RecordCount = 0 Then
"insert record"
End IF
查看消息框结果是否为您提供了任何关于问题所在的线索。通常,当Access不理解您的某个变量时,会发生此错误
别忘了,文本需要在SQL字符串中用单引号括起来,整数不要。你试过调试吗?恐怕,在你发布的文章中,没有一行是错误的。这是什么<代码>(tblFROMICPMS.woid=ThisWoid)。什么是
这个世界ID
。它不是应该是(tblFROMICPMS.woid=“&ThisWoid&”)吗“
?请查看选项卡elfromicpms.TestID
。应该是tblfromICPMS.TestID
。您是否在实际代码中连接该sql字符串?如果您单步执行,您将看到语句是字面上的选择tblfromICPMS.Woid,tblfromICPMS.Analyte,TabelfromICPMS.TestID,来自tblfromICPMS,其中(tblfromICPMS.Woid=ThisWoid)和(tblfromICPMS.Analyte=Analyte)以及(tblfromICPMS.TestID=ThisTestID)
您想要类似“WHERE(tblfromICPMS.Woid=”的内容&strVariable&>)和“`您可以包含rs的声明吗?基本上,我们都同意您应该尝试使用这个字符串”从tblfromICPMS中选择tblfromICPMS.Woid,tblfromICPMS.Analyte,tblfromICPMS.TestID,其中(tblfromICPMS.Woid=“&ThisWoid&”)和(tblfromICPMS.Analyte=“&Analyte&”)和(tblfromICPMS.TestID=“&thistid&”)“
而且,如果将任何条件与字符串进行比较,则需要在每一侧使用一个引号,“…=”&var&“和…”