2017-04-19 101 views
0

我想在另一個創造紀錄擅長使用SQL INSERT命令我能夠用查詢來選擇表,但我不知道如何插入一條記錄我的代碼是:ADODB插入到另一個工作表

Function database_add(Urun_barkodu, Urun_kodu, Urun_adi, Urun_kategori) As String 

    Dim cn As Object, rs As Object, output As String, sql As String, Insert As String 
    Dim add_data As String 
    Dim rst As ADODB.Recordset 
    '---Connecting to the Data Source--- 
    Set cn = CreateObject("ADODB.Connection") 
    Set rst = New ADODB.Recordset 
    With cn 
    .Provider = "Microsoft.ACE.OLEDB.12.0" 
    .ConnectionString = "Data Source=" & ThisWorkbook.Path & "\" & ThisWorkbook.Name & ";" & _ 
    "Extended Properties=""Excel 12.0 Xml;HDR=YES"";" 
    .Open 
    End With 
    add_data = "INSERT INTO [ürünler$] (columns(1),columns(2),columns(3),columns(4))" 
    add_data = add_data & "VALUES (Urun_barkodu, Urun_kodu, Urun_adi, Urun_kategori)" 
    cn.Close 
    cn.Open 
    rst.Open add_data, cn, dOpenStatic, adLockReadOnly, adCmdText 
    '---Clean up--- 
    rs.Close 
    cn.Close 
    Set cn = Nothing 
    Set rs = Nothing 
End Function 

它給了我這樣的錯誤:INSERT INTO語句中

語法錯誤

+0

使用sql插入命令來填充excel表打擊我作爲一個壞計劃。 –

+0

我在編碼中生鏽了,我想製作一些庫存控制系統,通常我會在幾個月後在java上創建這個系統:) –

回答

1

我猜Urun_barkodu,Urun_kodu, Urun_adiUrun_kategori是字符串變量。你需要將它們連接成字符串。

add_data = "INSERT INTO [ürünler$] (columns(1),columns(2),columns(3),columns(4)) " 
add_data = add_data & "VALUES ('" & Urun_barkodu & "', '" & Urun_kodu& "', '" & Urun_adi & "', '" & Urun_kategori & "');" 
+0

我明白了你的意思,但它說這種方式的結束 –

+0

應該有一個空格'... columns(4))'和'VALUES(...'。我在上面添加了一個。實際上,我不相信'列(1),列(2),列(3) ,第(4)欄需要包裹括號,但我不能100%確定它們會造成任何損害。 – Jeeped