mysql - 使用宏删除mysql表条目

标签 mysql vba excel

我正在编写一个宏,我想通过该宏从名为登录的服务器表中删除工作表 2 的 A 列中的几个名称。

数据库名称为“my_db”,表名称为login。我调用连接来连接到服务器数据库。以下是完整的代码:-

Dim cnt As ADODB.Connection
Dim rst As ADODB.Recordset
Dim Sql As String
Sub Button1_Click()
Dim Ws As Worksheet
Dim Var As String
Dim i As Integer
i = 1
Set Ws = Worksheets("Sheet2")
Var = "login"
Sql = "name"
Call Connection


Do

Sql = " Delete From " & " " & Var & "" & " Where name" = "Ws.Cells(i, 1)"





    Call Connection
  i = i + 1
  Loop Until Ws.Cells(i, 1) = ""

  MsgBox "All entries deleted from login table"


End Sub

Dim strUserName As String
Dim strPassword As String
Dim ConnectString As String
Set cnt = New ADODB.Connection


strServerName = "localhost"
strDatabaseName = "my_db"
strUserName = "root"
strPassword = "root1"


ConnectString = "DRIVER={MySQL ODBC 5.1 Driver};" & _
                "SERVER=" & strServerName & _
                ";DATABASE=" & strDatabaseName & ";" & _
                "USER=" & strUserName & _
                ";PASSWORD=" & strPassword & _
                ";OPTION=3;"



 With cnt
        .CursorLocation = adUseClient
        .Open ConnectString
        .CommandTimeout = 0
        Set rst = .Execute(Sql)
    End With
    'rst.Close
     'cnt.Close

    Set rst = Nothing
    Set cnt = Nothing

End Sub

但是这些条目并没有被删除。 SQL 语法有错误,谁能帮我解决 SQL 语法吗?

最佳答案

Sql = "delete From " & Var & " where name ='"  & Ws.Cells(i, 1).Value & "'"

但最好只打开一次连接,运行所有删除,然后关闭连接。

此外,您在这里不需要记录集(因为您没有返回任何记录),因此您可以忽略 cnt.Execute 的返回值

关于mysql - 使用宏删除mysql表条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28481256/

相关文章:

javascript - 如何使用php在两个时间值之间减去?

mysql - DBSlayer 中的浮点值截断问题

python - 数据帧交替数组

excel - 如何在 VBA 中将我的字典详细信息表示为数组?

vba - 循环中的帧的名称

java - 使用 Apache POI 确定安装的 Microsoft Excel 版本?

php - 使用 MyISAM 从多个表中删除

mysql - 如果主表有 2 个主键,如何使用两个表增强子查询以使用 3 个表进行搜索?

excel - 选择特定工作表并将其保存为新工作簿

excel - 替换和更新excel中的列