ms-access - MS Access 参数太少:预期为 1
问题描述
所以我试图从表中获取数据,将该数据设置为一个变量,然后将该变量添加到一个新表中。这是访问我正在搜索的人的姓氏的代码。我几乎 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');"
谢谢!
解决方案
您不能只将字符串变量嵌入到 SQL 中。代替
(Now, dbLastName, 'test ...
你需要
(Now(), '" & dbLastName & "', 'test' …
此外,您需要确保您的变量永远不会包含单引号字符,否则您还必须通过将其加倍来考虑这一点。
推荐阅读
- python - 将一列的分组最小值与熊猫中的一组时间戳进行比较
- sql - 将 Oracle 间隔转换为小时
- chef-infra - 如何在 Chef 中惯用地重新加载或启动一个单元?
- typescript - 如何从另一个脚本加载现有的打字稿文件以提高性能?
- javascript - 如何在没有 Google Tag Manager 的情况下以编程方式将事件发送到 GA4?
- fusion360 - Fushion 360:如何将圆的边缘限制为距边缘一定距离?
- javascript - 将带有onclick事件的按钮添加到react js中数据表中的每一行
- javascript - 通过 AJAX 从数据库和 DOM 中删除对象
- android - 获取BLE广告数据-Android scanRecord to Flutter Blue ScanResult
- python - 如何遍历自制字典并在 DJANGO 模板中访问其属性。?