【发布时间】:2020-10-26 20:56:03
【问题描述】:
调试器在运行以下命令时返回自动化错误:
Private Sub setDB()
Dim SQL As String
Dim Var As String
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
conn.Open "DRIVER={MariaDB ODBC 3.0 Driver}" _
& ";SERVER=" & "localhost" _
& ";DATABASE=" & "pbx" _
& ";USER=" & "root" _
& ";PASSWORD=" & "r00t" _
Var = Worksheets(3).Range("B2").Value
SQL = "UPDATE ps_product SET ean13='" & Var & "' WHERE id_product=12"
conn.Execute (SQL)
但是,当我像这样为 Var 赋值时:Var=10,代码运行良好。我在这里错过了什么吗?我在互联网上搜索了几天,但没有找到类似的东西。请问some1 可以提供帮助吗?或者可以发送一个类似问题的链接吗?
【问题讨论】:
-
Debug.Print Worksheets(3).Range("B2").Value返回什么? -
好奇,在你多日的搜索中,有没有碰到一个叫做 SQL 参数化的概念?
-
嗨 Parfait,不,我第一次看到这个概念。所以我研究了一下,发现了一些有用的信息在这里 [link]stackoverflow.com/questions/10352211/… 和在这里的“使用连接对象”部分:[link]docs.microsoft.com/en-us/sql/ado/guide/data/…。使用连接对象或命令对象的行为似乎相同。
-
毕竟没关系让它工作。感谢参数化的提示。
标签: sql vba sql-update mariadb adodb