INSERT INTO语句出错

时间:2017-02-15 18:02:05

标签: ms-access access-vba

我有以下内容并获得error in INSERT INTO statement。我已经完成debug.print并粘贴回SSMS,它工作正常,所以我真的很难过。语法看起来很好,但我知道有时从直接SQL到VBA SQL可能会很棘手。我感觉这是EXISTS部分,我把它拿出来做了相应的编辑,但仍然得到了错误消息。任何建议?

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) & ")"

1 个答案:

答案 0 :(得分:0)

访问SQL!= T-SQL。

您需要将此SQL字符串作为传递查询运行,然后与在SSMS中运行它相同。

或者将其翻译成Access SQL。

最多必须将表名更改为Access中链接表的名称(当然不是[database].[dbo].[table]

如果您需要有关选项2的更多帮助,请发布格式化结果Debug.Print sqlstr