在我的一个程序中, 有这么一个小片段:'AAA
adoCmd.CommandText = "insert into [CityID] (cityid, cityname) values (" & Trim(.Cell(i, 1).Text) & ",'" & Trim(.Cell(i, 2).Text) & "')"
adoCmd.Execute'BBB
adoCmd.CommandText = "insert into [Crop] (cityid, year, maizeoutput, beanoutput) values (" & Trim(.Cell(i, 1).Text) & "," & Trim(.Cell(i, 3).Text) & "," & Trim(.Cell(i, 4).Text) & "," & Trim(.Cell(i, 5).Text) & ")"
adoCmd.Execute
                        
AAA的执行完全没有问题, BBB的执行却报出 "INSERT INTO 语句的语法错误."
Debug时我把BBB生成的SQL语句直接拿到Access下执行,完全正确. 我检查了很多东西, 连接串, adoCmd的相关属性设置, 都没什么问题. 可问题就是解决不了.后来又做了一次偶然的尝试, 将BBB改写为:'NewBBB
adoCmd.CommandText = "insert into [Crop] values (" & Trim(.Cell(i, 1).Text) & "," & Trim(.Cell(i, 3).Text) & "," & Trim(.Cell(i, 4).Text) & "," & Trim(.Cell(i, 5).Text) & ")"
adoCmd.Execute也就是Insert时不指定字段名,让它按Values的顺序进行插入, 执行正常, 结果正确. 这让我非常困惑. 我不知道哪里出了问题. 请遇到过类似问题的朋友帮我分析一下好吗?谢谢了!