sql
  • excel
  • vba
  • 2014-03-28 117 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

    相关问题