2013-12-02 3 views
1

испытывают проблемы с выполнением «вставить» заявление«вставить» заявление с Excel появляется ошибка синтаксиса

я пытаюсь запустить в Excel VB:

insertQ = "INSERT INTO [Sheet1$] (Stockgroup, Stockcode, transdate, LastUpdate, time) VALUES ('990000', 'birthday', '21/12/2101', '','" & Time & "')" 

но он показывает ошибку синтаксиса.

Это работает, если я беру последние два поля

insertQ = "INSERT INTO [Sheet1$] (Stockgroup, Stockcode, transdate) VALUES ('990000', 'birthday', '21/12/2101')" 

вы пришли через это раньше? @@

+0

Изменить время слова, чтобы иметь скобки вокруг. например '[Время]' – shahkalpesh

ответ

0

Это работает для меня:

Sub sof20321516Insert2Excel() 

    Dim strSQL 
    Dim cnn, rst 

    On Error GoTo ErrHandler 

    Set cnn = CreateObject("ADODB.Connection") 
    cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0" _ 
    & ";Data Source=" & ThisWorkbook.FullName _ 
    & ";Extended Properties=""Excel 12.0 Xml;HDR=YES;HDR=YES""" 
    cnn.Open 
' 
    strSQL = "INSERT INTO [Sheet1$] (Stockgroup, Stockcode, transdate, LastUpdate, `time`) VALUES ('990000', 'birthday', '21/12/2101', '','" & Time & "')" 
    Set rst = cnn.Execute(strSQL) 

' 
' close ADO objects: 
' 
' rst.Close 
    Set rst = Nothing 

    cnn.Close 
    Set cnn = Nothing 

    Exit Sub 
ErrHandler: 
    MsgBox Err.Description 
    Set cnn = Nothing 

End Sub 

Использование ADO, имя поля time должно быть анти-кавычки. Как и в комментариях, ключевое слово не может использоваться как имя открытого поля в строке SQL.

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