微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MS Access 插入选择不适用于 vba

如何解决MS Access 插入选择不适用于 vba

我正在尝试像这样运行插入到选择查询中:

Dim rs as new ADODB.recordset
rs.Open "INSERT INTO tempTable(PartNumber,Age,Height,Notes,UpdateType)" & _
        " SELECT PartNumber,UpdateType FROM TABLE2",CurrentProject.Connection,adOpenStatic,adLockOptimistic

这给了我一个错误

INSERT INTO 语句中的语法错误

真正奇怪的是,当我调试.打印上述语句并从 Access 数据库中的查询向导运行查询时,它运行得很好。

我对 currentproject.connection 的理解是,我可以愉快地使用 Jet-sql 或 MS Access 查询语法,因此如果查询在 Access 的查询窗口中运行,它也应该在 VBA 中运行。好像不是这样。

以下是我尝试使代码运行的其他一些事情:

CurrentProject.Connection.Execute "INSERT INTO tempTable(PartNumber,UpdateType FROM TABLE2"

这会产生与上述相同的错误

我还尝试添加一个新行 vbclrf

rs.Open "INSERT INTO tempTable(PartNumber,UpdateType)" & _
        & vbclrf & " SELECT PartNumber,adLockOptimistic

但它给了我同样的错误

解决方法

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

INSERT 是一个动作 SQL,所以对于 VBA 构造的语句,使用 DoCmd.RunSQL 或 CurrentDb.Execute 或 CurrentProject.Connection.Execute。

我的偏好是:CurrentDb.Execute "your SQL statement here"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。