【问题标题】:Deleting mysql table entries using a macro使用宏删除mysql表条目
【发布时间】:2015-02-12 15:24:35
【问题描述】:

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

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

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语法?

【问题讨论】:

  • 不错的代码。你的问题是什么?
  • 我没有收到任何错误,但表条目没有被删除。要我发帖吗,呼叫连接代码?
  • 是的,什么叫连接?你在哪里发送查询?
  • @LorenzMeyer :我已经添加了完整的代码,我猜sql查询中有一些语法错误。
  • 你添加的代码不好。您错过了 Sub 声明。

标签: mysql vba excel


【解决方案1】:
Sql = "delete From " & Var & " where name ='"  & Ws.Cells(i, 1).Value & "'"

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

另外这里不需要记录集(因为你没有返回任何记录),所以你可以忽略来自cnt.Execute的返回值

【讨论】:

  • 谢谢!!我错过了语法!
【解决方案2】:

由于您只粘贴了部分代码,我只能猜测。

Do
Sql = " Delete From " & Var & " Where name" = "Ws.Cells(i, 1)"
Call Connection (Sql)
i = i + 1
Loop Until Ws.Cells(i, 1) = ""

清理您的查询。更重要的是,将其作为参数传递给连接。

【讨论】:

    猜你喜欢
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 2013-08-27
    相关资源
    最近更新 更多