2014-01-16 64 views
0

我使用EXCEL宏/ vba將xls表中的數據插入到SQL數據庫中。插入A db時語法不正確

任何人都可以解釋爲什麼我收到此錯誤信息......

附近有語法錯誤「OPEN」

我運行的代碼是一個INSERT語句

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' 只是我試圖插入一個collumn值..

回答

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列。這會在每個插頁上自動遞增。

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