2017-02-15 6 views
0

У меня есть следующее и получение error in INSERT INTO statement. Я сделал debug.print и вставил обратно в SSMS, и он работает просто отлично, поэтому я действительно в тупике. Синтаксис выглядит хорошо для меня, но я знаю, что иногда переход от прямого SQL к VBA SQL может быть сложным. У меня было ощущение, что это был раздел EXISTS, и я взял его и сделал соответствующие изменения и до сих пор получил сообщение об ошибке. Любые предложения?Ошибка в заявлении INSERT INTO

sqlstr = "INSERT INTO [database.[dbo].[table]" & _ 
    "(" & _ 
     "User_name" & _ 
     ",Client_Id" & _ 
     ",Client_Name" & _ 
     ",UserAccess" & _ 
     ",UserId" & _ 
    ")" & _ 
    "SELECT " & _ 
     "User_name = '" & UserName & "'" & _ 
     ",Client_Id = " & Me.ClientList.ItemData(ClientID) & "" & _ 
     ",Client_Name = '" & Me.ClientList.Column(1, ClientID) & "'" & _ 
     ",UserAccess = 0" & _ 
     ",UserId = " & UserId & "" & _ 
    " WHERE NOT EXISTS (SELECT 1 FROM [database].[dbo].[table] where UserID = " & UserId & " and Client_Id = " & Me.ClientList.ItemData(ClientID) & ")" 

ответ

0

Доступ к SQL! = T-SQL.

Вам либо нужно запустить эту строку SQL как Pass-Through query, то это то же самое, что запустить его в SSMS.

Или перевести его в Access SQL.

В самом лучшем случае вы должны изменить имена таблиц в названия связанных таблиц в Access (которые, конечно, не [database].[dbo].[table])

Если вам нужна дополнительная помощь с вариантом 2, пожалуйста, напишите форматированный результат Debug.Print sqlstr

Смежные вопросы