【发布时间】:2018-01-23 22:49:15
【问题描述】:
我正在尝试使用 excel 更新 mysql 数据库,这仅适用于 mysql 数据库中的一列,但如果其他 .. excel vba 返回此错误
“运行时错误'-2147217900 (80040e14)'”
这是我的代码
Sub ud()
Dim cmdCommand As New ADODB.Command
Dim recSet As New ADODB.Recordset
Dim cn As ADODB.Connection
Dim i As Integer
Dim sheet1 As Worksheet
Dim code, datesold As String
tf = Range("O2")
sf = Range("H3")
ActiveWorkbook.ActiveSheet.Activate
Set sheet1 = ActiveWorkbook.ActiveSheet
Set Rng = Range("Table_Query_from_20172018_1")
Set cn = New ADODB.Connection
cn.ConnectionString = "Driver=MySQL ODBC 5.3 ANSI
Driver;SERVER=localhost;PWD=12345678;UID=root;DATABASE=bio;PORT=3306"
cn.Open
cmdCommand.ActiveConnection = cn
Loop sheet1 data rows
For i = 1 To Rng.Rows.Count
ID = Rng.Cells(i, 5).Value
shf = Rng.Cells(i, 6).Value
wazaef = Rng.Cells(i, 7).Value
emtihan = Rng.Cells(i, 11).Value
strSQLCommand = "UPDATE students INNER JOIN (e1a INNER JOIN (eshfwi INNER JOIN wanda ON eshfwi.ID = wanda.ID) ON e1a.ID = wanda.ID) ON students.ID = e1a.ID SET eshfwi." & tf & " = " & shf & ", wanda." & tf & " = " & wazaef & ", e1a." & tf & " = " & emtihan & " where eshfwi.ID = " & ID & " and wanda.ID=" & ID & " and e1a.ID=" & ID & ";"
cmdCommand.CommandText = strSQLCommand
cmdCommand.CommandType = adCmdText
Set recSet = cmdCommand.Execute
Next i
End Sub
更新:sql 语句正在处理同一个表中的另一列.. 但是当我更新另一个列时,此错误显示.. 现在我尝试删除该列并创建一个新列.. 代码与某些 ID 一起使用然后出现同样的错误,报告包含此消息
【问题讨论】: