MS Access太少参数:预期1

时间:2019-05-23 14:06:20

标签: ms-access

因此,我尝试从表中获取数据,将数据片段设置为变量,然后将该变量添加到新表中。 这是访问我要搜索的人的姓氏的代码。我几乎100%确信这部分有效。

Dim db As Database
Dim Lrs As DAO.Recordset
Dim LSQL As String
Set db = CurrentDb()
Set Lrs = db.OpenRecordset("Select [LastName]" & _
      "From ['Chromebook Registration Form]" & _
      "Where [InventoryNumber] = 1")
dbLastName = Lrs("LastName")

在调试模式下,它显示变量“ dbLastName”包含我想要的字符串。

但是,当我运行以下代码(将信息添加到新表中)时,出现3061运行时错误代码。参数太少:预期1。 调试器说问题出在最后一行。我认为这是“ dbLastName”的问题。时间戳记工作正常。

CurrentDb.Execute " INSERT INTO TempReg " _
              & "([Timestamp], LName, FName, Grade, InventoryNumber, SerialNumber, MacAddress, PaidIn, CheckNum) VALUES " _
              & "(Now, dbLastName, 'test', 'test', 'test', 'test', 'test', 'test', 'test');"

谢谢!

1 个答案:

答案 0 :(得分:0)

您不能只将字符串变量嵌入SQL。代替

(Now, dbLastName, 'test ...

您需要

(Now(), '" & dbLastName & "', 'test' …

此外,您需要确保变量永远不会包含单引号字符,否则您还必须通过将其加倍来将其考虑在内。