Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MS Access插入选择不适用于vba_Vba_Ms Access - Fatal编程技术网

MS Access插入选择不适用于vba

MS Access插入选择不适用于vba,vba,ms-access,Vba,Ms Access,我正在尝试运行插入到select查询,如下所示: 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.Co

我正在尝试运行插入到select查询,如下所示:

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 STANTE中的语法错误

真正奇怪的是,当我debug.print上面的语句并从Access数据库中的查询向导运行查询时,它运行得很好

我对
currentproject.connection
的理解是,我可以愉快地使用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

但它给了我同样的错误

只有SELECT语句用于设置记录集对象。不需要记录集

INSERT是一个SQL操作,因此对于VBA构造语句,请使用DoCmd.RunSQL或CurrentDb.Execute或CurrentProject.Connection.Execute


我的首选是:
CurrentDb.Execute“yoursqlstatement here”

为什么要将记录复制到诱惑中,而不仅仅是使用查询?不需要测试和括号。其他原因导致执行失败。虽然我所看到的应该是可行的,但我正在将记录复制到临时表中,因为我想在数据表视图中以表单的形式显示它。我知道我也可以使用查询,但我想在每个记录旁边添加一个复选框。我想将复选框值设置为用户设置的任何值,即使用户关闭表单并返回时也是如此。因此,我必须为
CurrentDb.Execute
worked使用一个临时表