【问题标题】:VBA - MySQL UPDATE - Return code to confirm Update was done or notVBA - MySQL UPDATE - 返回代码以确认更新是否完成
【发布时间】:2019-11-30 14:58:39
【问题描述】:

尝试在 Excel 中运行 MySQL 更新。

想检查更新是否发生,即是否找到并更新了行,或者这样的行不存在并且更新了 0 行

试图在 VBA 代码中找到 MySQL 的返回码,但没有什么我不知所措!

c = 2
Do While Trim(MAIN.Cells(c, 1)) <> ""

   sMyword = "UPDATE table1 SET price = 1.00 WHERE part = 'ABC';"
   conn.Execute sMyword

   If "did the update happen against the row" > 0 Then
       MAIN.Cells(c, 3) = "Price UPDATED OK"
   Else
       MAIN.Cells(c, 3) = "Part NOT FOUND "
       MAIN.Cells(c, 3).Interior.ColorIndex = 3 'Red
   End If

   c = c + 1

Loop

我希望得到SQL语句sMyword更新的行数

【问题讨论】:

    标签: mysql vba


    【解决方案1】:

    Execute 方法应在第二个参数RecordsAffected 中返回受影响的记录。试试这个语法:

    Dim RecordsAffected As Long
    sMyword = "UPDATE table1 SET price = 1.00 WHERE part = 'ABC';"
    conn.Execute sMyword, RecordsAffected
    MsgBox RecordsAffected
    

    参考:https://docs.microsoft.com/en-us/sql/ado/reference/ado-api/execute-method-ado-connection?view=sql-server-2017

    【讨论】:

    • 谢谢,使用 RecordsAffected 设法让它工作 - 所以查询变成了conn.Execute sMyword, RecordsAffected
    • 太棒了,如果对您有帮助,请点赞我的回答。此外,我将变量名称更改为 RecordsAffected 以获得更准确和完整的答案。
    猜你喜欢
    • 2013-04-08
    • 2020-12-05
    • 2020-01-08
    • 1970-01-01
    • 2013-02-22
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多