插入A db时语法不正确

时间:2014-01-16 14:49:31

标签: sql excel vba

我正在使用EXCEL宏/ vba将数据从xls工作表插入到SQL数据库中。

任何人都可以解释为什么我收到此错误消息...

在“打开”附近不正确的语法

我运行的代码是一个插入语句

 Dim insert As String

 insert = "INSERT INTO dbo.HEADER 
    (plant, 
    taskno, 
    tskstatus, 
    category, 
    opened, 
    openedby, 
    title) 
 VALUES 
    ( 'UK', 
    (select Max(taskno) AS count from HEADER)+ 1), 
    'open', 
    'RFSA', 
    CONVERT(datetime,'" & strdate & "',103), 
    '" & UserId & "', 
    '" & strtitle & "')"

代码将以下内容插入SQL数据库。

'OPEN'只是我想要插入一个柱子的值..

2 个答案:

答案 0 :(得分:2)

您的括号不匹配。

insert = "INSERT INTO dbo.HEADER 
    (plant, 
    taskno, 
    tskstatus, 
    category, 
    opened, 
    openedby, 
    title) 
 VALUES 
    ( 'UK', 
    (select Max(taskno) AS count from HEADER)+ 1, 
    'open', 
    'RFSA', 
    CONVERT(datetime,'" & strdate & "',103), 
    '" & UserId & "', 
    '" & strtitle & "')"

答案 1 :(得分:1)

您想使用insert . . . select语法:

INSERT INTO dbo.HEADER(plant, taskno, tskstatus, category, opened, openedby, title) 
    SELECT 'UK', Max(taskno) + 1, 'open', 'RFSA', 
           CONVERT(datetime,'" & strdate & "',103), 
           '" & UserId & "', 
           '" & strtitle & "'
    from Header;

但是,由于您使用的是SQL Server,因此您希望taskno成为identity列。这将在每次插入时自动递增。