excel VBA中的SQL UPDATE语句不工作
我有这个用SQL更新数据库的代码,但它不起作用excel VBA中的SQL UPDATE语句不工作,sql,excel,vba,Sql,Excel,Vba,我有这个用SQL更新数据库的代码,但它不起作用 Call Connect_to_db strSQL = "UPDATE StockTable " & _ "SET StockTable.Selected = '" & Sheets("InfoStockDes").Range("g" & x) & "' " & _ "WHERE OwnerName = '" & Sheets("InfoStockDes").Range("a" & x)
Call Connect_to_db
strSQL = "UPDATE StockTable " & _
"SET StockTable.Selected = '" & Sheets("InfoStockDes").Range("g" & x) & "' " & _
"WHERE OwnerName = '" & Sheets("InfoStockDes").Range("a" & x) & WHERE OwnerShipMethod = Sheets("InfoStockDes").Range("b" & g) & WHERE StockName = Sheets("InfoStockDes").Range("c" & g) & WHERE Quantity = Sheets("InfoStockDes").Range("d" & g) "' "
cn.Execute strSQL
Call Close_db
这是您发布的代码,但有一些额外的换行符和大纲。也许你现在能更好地发现明显的错误
Call Connect_to_db
strSQL = "UPDATE StockTable " & _
"SET StockTable.Selected = '" & Sheets("InfoStockDes").Range("g" & x) & "' " & _
"WHERE OwnerName = '" & Sheets("InfoStockDes").Range("a" & x) & _
WHERE OwnerShipMethod = Sheets("InfoStockDes").Range("b" & g) & _
WHERE StockName = Sheets("InfoStockDes").Range("c" & g) & _
WHERE Quantity = Sheets("InfoStockDes").Range("d" & g) "' "
cn.Execute strSQL
Call Close_db
在此版本中,我将额外的WHERE
子句更改为和
,并添加了一些明显缺失的“AND”
我想这应该可以更好地工作。如果它不工作,请告诉我们什么不工作,你得到了什么错误消息,如果有的话,请在你执行它之前显示strSQL的实际内容。这个字符串应该包含一个简单的SQL语句,但可能有错误,所以请看一下,如果必要的话,发布让我们看一下:)…它不工作意味着什么?你有任何错误吗?请发布它们!顺便说一句:你忘记了where子句中有很多单引号和双引号和/或(?)。我使用了第二个代码,并给了我错误消息“条件表达式中的数据类型不匹配”“嗯,因为我们对您的数据类型一无所知,所以您可能比我们更适合解决该错误:)
Call Connect_to_db
strSQL = "UPDATE StockTable " & _
"SET StockTable.Selected = '" & Sheets("InfoStockDes").Range("g" & x) & "' " & _
"WHERE OwnerName = '" & Sheets("InfoStockDes").Range("a" & x) & "' " & _
"AND OwnerShipMethod = '" & Sheets("InfoStockDes").Range("b" & g) & "' " & _
"AND StockName = '" & Sheets("InfoStockDes").Range("c" & g) & "' " & _
"AND Quantity = '" & Sheets("InfoStockDes").Range("d" & g) & "' "
cn.Execute strSQL
Call Close_db