Я использую VBA в Excel, чтобы сгенерировать оператор INSERT, который будет выполнен в процедуре VBA. Когда я запускаю код, я получаю ошибку времени выполнения «Синтаксическая ошибка в операторе INSERT INTO», когда я получаю инструкцию Execute - то же полезное сообщение, которое вы получаете, если вы сделали что-то не так в представлении SQL в Access. Тем не менее, когда я запускаю строку SQL, сгенерированную кодом VBA в Access , используя старомодное копирование и вставку, она работает нормально - сообщений об ошибках нет, и при открытии таблицы появляются записи.
Это не тот способ, которым я выполняю команду в 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', '')
Кто-нибудь видел эту проблему раньше?