【发布时间】:2020-12-22 03:49:34
【问题描述】:
我正在尝试像这样在选择查询中运行插入:
Dim rs as new ADODB.recordset
rs.Open "INSERT INTO tempTable(PartNumber, Age, Height, Notes, UpdateType)" & _
" SELECT PartNumber, Age, Height, Notes, UpdateType FROM TABLE2", CurrentProject.Connection, adOpenStatic, adLockOptimistic
这给了我一个错误:
INSERT INTO 语句中的语法错误
真正奇怪的是,当我 debug.print 上面的语句并从 Access 数据库中的查询向导运行查询时,它运行得很好。
我对@987654322@ 的理解是,我可以愉快地使用 Jet-SQL 或 MS Access 查询语法,因此如果查询在 Access 的查询窗口中运行,它也应该在 VBA 中运行。好像不是这样的。
以下是我试图让代码运行的其他一些事情:
CurrentProject.Connection.Execute "INSERT INTO tempTable(PartNumber, Age, Height, Notes, UpdateType)" & _
" SELECT PartNumber, Age, Height, Notes, UpdateType FROM TABLE2"
这给出了与上面相同的错误。
我也尝试添加新行vbclrf:
rs.Open "INSERT INTO tempTable(PartNumber, Age, Height, Notes, UpdateType)" & _
& vbclrf & " SELECT PartNumber, Age, Height, Notes, UpdateType FROM TABLE2", CurrentProject.Connection, adOpenStatic, adLockOptimistic
但它给了我同样的错误
【问题讨论】:
-
为什么要将记录复制到 tempTable 而不仅仅是使用查询?
-
经过测试,不需要括号。其他原因导致 Execute 失败。虽然我看到的应该可以工作。
-
我正在将记录复制到临时表中,因为我想在数据表视图中以表格形式显示它。我知道我也可以使用查询,但我想在每条记录旁边添加一个复选框。即使用户关闭表单并返回,我也希望复选框值成为任何使用设置。所以我必须为此使用一个临时表