INSERT INTO执行VBA

时间:2015-12-29 16:24:14

标签: sql-server vba ms-access access-vba

我想要执行此SQL语句。但是CurrentDb.Execute我收到错误3061(参数太少。预计9)。变量中给出的值是合法的。

这是我的表:

The table

这是我的访问表单:

The MS Access Form

这是我的代码:

updStr = "INSERT INTO Movie(movie_id, title, duration, description, publication_year, cover_image, previous_part, price, URL)" & _
            " VALUES(movie_id = " & Me.TxtMovId & ", title = '" & Me.TxtTitle & "'," & _
            " duration = " & Me.TxtDur & ", description = '" & Me.TxtDescr & "'," & _
            " publication_year = " & Me.TxtPubl & ", cover_image = " & Me.TxtImage & "," & _
            " previous_part = " & Me.TxtPrev & ", price = " & Me.TxtPrice & ", URL = '" & Me.TxtUrl & "')"

CurrentDb.Execute (updStr)

DoCmd.RunSQL会执行字符串,但它没有效果,这是使用CurrentDb.Execute的原因。

1 个答案:

答案 0 :(得分:2)

@Hansup的评论解释了这个问题:不要在访问VALUES的{​​{1}}子句中包含字段名称。

另外,我在Stack Overflow上学到的一些我想分享的内容是,如果你要在代码中查询,你应该使用参数化查询来帮助防止有人意外搞乱你的数据库或某些孩子。试图通过在文本字段中插入命令来查看是否可以删除表。这是一个Stack Overflow链接Parameterized Queries

以下是使用您的几个字段的简短示例:

INSERT