Excel VBA为Access生成的INSERT语句在VBA中不起作用,但在Access中起作用

时间:2018-05-10 07:35:12

标签: sql excel-vba ms-access ado vba

我在Excel中使用VBA生成要在VBA过程中执行的INSERT语句。当我运行代码时,我在INSERT INTO语句中得到运行时错误'语法错误'当我到达Execute语句时 - 如果你在Access中的SQL视图中做错了,你会得到同样有用的消息。但是,当我运行由Access 中的VBA代码生成的SQL字符串时,使用旧式Copy&粘贴,它运行正常 - 没有错误消息,当我打开表时记录就在那里。

这不是我在VBA中执行命令的方式,因为我有一个可以正常工作的DELETE语句。代码如下:

Set Cn = CreateObject("ADODB.Connection")
Set Rs = CreateObject("ADODB.Recordset")

Cn.Open cnPath
SQLStr = "SELECT * FROM [" & tblName & "]"
Rs.Open SQLStr, Cn, 1, 3

'code builds SQL str here by looping through
'table headers and relevant row

Cn.Execute SQLStr

结果SQLStr是这样的:

INSERT INTO [Size Profiles] (Season,Region,Department,ProfType,ColourID,ArticleNumber,StyleName,Colour,Comments,Channel,Fit,SizeProfile,LastChanged,Identifier,FileName,Size,RegionSizeRun,Site,ActualSizeProfile,ActualFileName,ActualLastChanged,ActualPairs,Fixing,Oddity) VALUES ('AW2018', 'UK', 'Childrens', '', 188473, 26145715, 'Product Name', 'Product Colour', '', 'Retail', 'F(M)', 0.186, #05/09/2018#, '26145715AW2018DC01UKF(M)', 'New Sizing Template.xlsb', 70, '', 'DC01', 0, '', #05/09/2018#, 0, '0', '')

之前有没有人见过这个问题?

0 个答案:

没有答案