VBA ADODB多行插入不工作

我想弄清楚如何在VBA excel中使用ADODB进行多行插入。 我的问题似乎是,我不能找出正确的语法来使用这个简单的任务,即使在search我仍然失去了为什么它不工作。

我没有问题做一个插入使用该语句

INSERT INTO test.dbf ('field1','field3') VALUES ('test1','test11') 

但是,只要我尝试

 INSERT INTO test.dbf ('field1','field3') VALUES ('test1','test11'), ('test2','test22') 

它给了我以下错误

 [Microsoft][ODBC dBase Driver] Missing semicolon (;) at end of SQL statement. 

我当然试着在声明的末尾添加分号,这根本没有任何帮助,我也试着运行声明,但没有指定列,都没有用。

任何关于我在做什么的错误? 我想避免做8000个单独的插入。

提前致谢

多行插入的SQL语法比ADODB / ODBC接口更新,所以他们的SQLparsing器不能识别它。 因此你的select是:

  1. 使用VBA将其指定为传递查询。 只要您正在执行的DBMS识别新的插入语法,这应该工作。 但是,如果插入内容是基于用户input的话,那么这样做有很大的不利之处,那就是几乎可以肯定地将数据库暴露给注入。 (注意:这与pass-thru没有任何关系,而是使用string组合来完成插入操作,而不是使用ADODB表对象)。

  2. 只需使用VBA / ADODB表对象插入多行即可。 这不使用较新的多行插入SQL语法,但仍然正常工作。 尝试利用多行语法的唯一原因是如果您遇到性能问题,并且还有许多其他性能选项可用。