【问题标题】:Problem with executing an SQL insert statement in access using VBA使用 VBA 在访问中执行 SQL 插入语句的问题
【发布时间】:2011-05-13 20:07:23
【问题描述】:

我正在尝试这条 SQL 语句,但我一直收到错误

Run-time error '3061':
Too few parameters. Expected 4.

我要执行的语句是:

sSQL = "INSERT INTO MasterTable (AdmissionNumber, Surname, Forename, TutorGroup) VALUES (intAdmissionNo, strSurName, strForeName, strTutorGroup)"
CurrentDb.Execute sSQL, dbFailOnError

intAdmissionNo、strSurName、strForeName、strTutorGroup这4个值都​​有值,字段都存在。

非常感谢任何帮助,谢谢! :)

【问题讨论】:

  • 您在哪里提供了要插入的实际值???
  • 它们是先前声明的,它们也显示在监视窗口中。 (但录取没有将是一个改变的数字,名字/姓氏是名字/姓氏和导师组也会改变)。一个例子可能是:...VALUES (5040, Smith, John, 10R)

标签: sql ms-access vba insert insert-into


【解决方案1】:

我没有从 VBA 做到这一点,但除非我弄错了,否则您不会像您认为的那样发送变量。试试这一行而不是你当前的行:

sSQL = "INSERT INTO MasterTable (AdmissionNumber, Surname, Forename, TutorGroup) VALUES (" & intAdmissionNo & ", " & strSurName & ", " & strForeName & ", " & strTutorGroup & ")"

【讨论】:

  • 啊,谢谢,但这现在给了我一个运行时错误 3075。查询表达式“10R”中的语法错误(缺少运算符)。 (10R是TutorGroup评价过的)
  • tutorgroup 是字母,不是数字,加引号 ", '" & strTutorGroup & "')"
  • 啊,谢谢 :) 我在所有字符串周围加上引号,它起作用了。虽然现在我似乎每次有人的名字中有撇号时都会出错。任何想法如何在不删除撇号的情况下解决这个问题?
  • @Tim:用两个撇号替换任何撇号实例。我想是这样的Surname = Replace(Surname, "'", "''")
猜你喜欢
  • 1970-01-01
  • 2021-09-10
  • 2015-07-26
  • 2021-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多