2015-06-25 24 views
0
Sub uoload_data() 
    Dim s(40) As Integer 
    Dim Row As Integer 
    Dim i As Integer 
    i = 0 
    For Row = 7 To 39 
     s(i) = Sheets("Data").Cells(Row, 5).Value 
     i = i + 1 
    Next 
    Dim cn As Object 
    Dim rs As Object 
    Dim strSql As String 
    Dim strConnection As String 
    Dim AppPath As String 
    Set cn = CreateObject("ADODB.Connection") 
    AppPath = Application.ActiveWorkbook.Path 
    strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _ 
     "Data Source=C:\Users\devi\Desktop\Ability.accdb;" 
    cn.Open strConnection 
    strSql = "INSERT INTO MyTable Values ('" & s(0) & " ',  
    '" & s(1) & " ','" & s(2) & " ','" & s(3) & " ')" 
    Set rs = cn.Execute(strSql) 
    Set rs = Nothing 
    cn.Close 
    Set cn = Nothing 
End Sub 

我有一個40字段的Excel表單。我想更新所有字段以訪問數據庫。同時插入記錄到數據庫我使用插入語句。同時我需要將所有數組的字段寫入到insert語句中。所以,請幫助我完成簡潔的陳述。VBA中的數據庫更新

回答

1

可以在s()使用Join()這裏

strSql = "INSERT INTO MyTable Values ('" & Join(s, "','") & "')" 

的值是整數,但你包裹在單引號中的值,所以是你的數據庫列文本類型?

如果它們是數字列,那麼您應該刪除單引號。

+0

是的,我的專欄是文本類型,如果一個變量st聲明一個字符串varibale&我想使用連接函數與varibale st。同時顯示錯誤「Invalid Procedure call or argument」 st = Join(s,「&」) –

+0

我的不好 - 你需要聲明Dim s(40)As String' –

+0

謝謝 其工作正常 –