2017-02-15 194 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字符串作为传递查询,那么它与在SSMS中运行它相同。

或将其转换为Access SQL。

在很大部分必须更改表名到链接表在Access的名字(这当然不是[database].[dbo].[table]

如果您需要选择2更多的帮助,请张贴的格式化结果Debug.Print sqlstr