sql
  • excel
  • vba
  • 2014-03-28 115 views -1 likes 
    -1

    我正在做一個VBA項目。我已成功連接並檢索了我的表格。現在我想更新Excel中的幾列。當我運行這個代碼時,它不會拋出任何錯誤,但是我的表中的值永遠不會改變。我的sql語句有什麼問題

    sqlstr = "UPDATE " & table4 & " SET price = '" & Cells(i, 8) & ", & " 
    & Cells(i, 9) & "' " & " WHERE key_id = '" & Cells(i, 1) & ", & " & Cells(i, 2) & "' " 
    

    當我使用一個值運行較短的版本時,它會更新它。

    sqlstr = "UPDATE " & table4 & " SET price = '" & Cells(i, 8) & "' " & " 
    WHERE key_id = '" & Cells(i, 1) & "' " 
    

    我在哪裏錯了?

    +0

    什麼是你想在這裏完成?你有一個'&'在一個報價裏面,可能是破壞的東西。細胞(I,9)在做什麼?通常更新語句如下所示:更新表設置Column = Value,Column2 = Value2 where子句 – sjramsay

    +1

    這也是一個SQL注入風險。 – Andrew

    +1

    那些不是SQL語句。這些是構建SQL語句的VBA語句。生成的SQL語句位於變量'sqlstr'中。如果顯示該變量的內容,您可能會立即在構建的SQL語句中看到語法錯誤。 –

    回答

    0

    你失蹤「的報價在你的語法

    sqlstr = "UPDATE " & table4 & " SET price = '" & Cells(i, 8) & "' " & " 
    & Cells(i, 9) & "' " & " WHERE key_id = '" & Cells(i, 1) & ", & " & Cells(i, 2) & "' " 
    
    +0

    它在第1行附近丟出了一個錯誤的語法錯誤 – user3465207

    +0

    但是夥計們,這樣的狀態對不對? UPDATE product_discount SET price = '10,15'WHERE key_id ='1,2' – user3465207

    相關問題