【问题标题】:SQL UPDATE Statement in excel VBA not working ( mismatch error )excel VBA中的SQL UPDATE语句不起作用(不匹配错误)
【发布时间】:2013-11-27 21:02:04
【问题描述】:

当我尝试使用下面的代码时,出现错误消息“条件表达式中的数据类型不匹配。”

Call Connect_to_db
strSQL = "UPDATE StockTable " & _
         "SET [Selected] = '" & Sheets("InfoStockDes").Range("e" & x) & "' " & _
         "WHERE [OwnerName] = '" & Sheets("InfoStockDes").Range("a" & x) & "' " & _
         "AND [OwnerShipMethod] = '" & Sheets("InfoStockDes").Range("b" & x) & "' " & _
         "AND [StockName] = '" & Sheets("InfoStockDes").Range("c" & x) & "' " & _
         "AND [Quantity] = '" & Sheets("InfoStockDes").Range("d" & x) & "' "
         Debug.Print strSQL
cn.Execute strSQL
Call Close_db

【问题讨论】:

  • 以及您从这行得到的结果:Debug.Print strSQL?
  • 这涉及到哪些数据类型?我们无法闻到您尝试将哪些数据插入到哪种列中,并且您的工作表中的某处数据不适合您数据库中的某些列。如果不知道您如何定义数据库,也不知道您要输入什么数据,我们只知道错误告诉您什么。另外,正如我之前问过的,正如@KazJaw 提到的,显示 strSQL 的内容。
  • @KazJaw Debug.Print strSQL : UPDATE StockTable SET [Selected] = 'True' WHERE [OwnerName] = 'Ali' AND [OwnerShipMethod] = 'direct' AND [StockName] = 'NFK' AND [数量] = '2052'
  • @oerkelens OwnerName Text OwnerShipMethod Text StockName Text Quantity Number Selected Text
  • 好吧,你去 :) 你正在将 string '2052' 与数字字段 Quantity 进行比较。如果您将这些重要信息添加到您的原始问题中,也许您自己已经注意到了;)

标签: sql excel vba


【解决方案1】:

好吧,从我之前的答案中删除了两个 ',如果我对数据有更多了解,我不会放在那里 :)

我猜这应该可以工作:)

Call Connect_to_db
strSQL = "UPDATE StockTable " & _
     "SET [Selected] = '" & Sheets("InfoStockDes").Range("e" & x) & "' " & _
     "WHERE [OwnerName] = '" & Sheets("InfoStockDes").Range("a" & x) & "' " & _
     "AND [OwnerShipMethod] = '" & Sheets("InfoStockDes").Range("b" & x) & "' " & _
     "AND [StockName] = '" & Sheets("InfoStockDes").Range("c" & x) & "' " & _
     "AND [Quantity] = " & Sheets("InfoStockDes").Range("d" & x) 
Debug.Print strSQL
cn.Execute strSQL
Call Close_db

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-13
    • 2021-04-12
    • 1970-01-01
    • 2018-03-25
    • 2018-09-27
    • 2017-04-12
    • 1970-01-01
    • 2014-01-05
    相关资源
    最近更新 更多