首页 > 解决方案 > VBA - MySQL UPDATE - 返回代码以确认更新是否完成

问题描述

尝试在 Excel 中运行 MySQL 更新。

想检查 UPDATE 是否发生,即是否找到并更新了行或这样的行不存在并且更新了 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

标签: mysqlvba

解决方案


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


推荐阅读