📜  excel vba 连接到 mysql db (1)

📅  最后修改于: 2023-12-03 14:41:02.951000             🧑  作者: Mango

使用Excel VBA连接到MySQL数据库

MySQL是一个流行的开源关系型数据库管理系统。连接到MySQL数据库可以帮助我们将数据从Excel导入MySQL数据库中,也可以从MySQL数据库中将数据导入Excel。这使得Excel VBA程序员可以利用MySQL的数据库功能,快速地操作数据。

在下面的教程中,我们将演示如何使用Excel VBA连接到MySQL数据库。我们将首先介绍如何安装MySQL ODBC驱动程序,然后介绍如何使用VBA代码连接到MySQL数据库,以及如何执行SQL查询和更新操作。

安装MySQL ODBC驱动程序

在开始连接到MySQL数据库之前,我们需要先安装MySQL ODBC驱动程序。在安装MySQL ODBC驱动程序之前,我们需要先下载MySQL Connector / ODBC。

下载和安装MySQL Connector / ODBC

MySQL Connector / ODBC是官方的MySQL ODBC驱动程序。您可以从MySQL官网下载最新版本的MySQL Connector / ODBC。下载完成后,运行安装程序进行安装。

配置MySQL ODBC驱动程序

安装MySQL Connector / ODBC后,我们需要配置ODBC数据源,以便Excel VBA可以连接到MySQL数据库。

  1. 在Windows开始菜单中,找到ODBC数据源管理员。
  2. 在ODBC数据源管理员窗口中,选择“系统DSN”选项卡。
  3. 单击“添加”按钮来添加新的ODBC数据源。
  4. 在“创建新数据源”窗口中,选择“MySQL ODBC 5.1驱动程序”(或您安装的驱动程序版本),然后单击“完成”按钮。
  5. 在“ODBC MySQL配置”窗口中,输入数据库名称、主机名、端口号、用户名和密码等信息。单击“测试”按钮来测试连接是否成功。如果测试成功,单击“确定”按钮完成配置。
使用Excel VBA连接到MySQL数据库

我们已经成功地配置了MySQL ODBC驱动程序,接下来我们可以使用VBA代码来连接到MySQL数据库。

打开VBE编辑器

首先,我们需要打开Visual Basic编辑器(VBE)。在Excel中,可以通过按下Alt + F11来打开VBE。

添加Microsoft ActiveX数据对象库引用

在VBE中,我们需要添加对Microsoft ActiveX数据对象库的引用。在VBE菜单中,选择“工具”>“引用”,然后勾选“Microsoft ActiveX数据对象库”复选框。这样我们就可以在VBA中使用ADO对象连接到MySQL数据库。

连接到MySQL数据库

接下来,我们将使用ADO对象连接到MySQL数据库。以下是连接到MySQL数据库的VBA代码示例:

Sub ConnectToMySQLDatabase()
    Dim cn As New ADODB.Connection
    Dim serverName As String, databaseName As String
    Dim user As String, password As String
 
    '修改以下内容来连接到您的MySQL数据库
    serverName = "localhost" 'MySQL服务器名称
    databaseName = "test" '数据库名称
    user = "root" '用户名
    password = "123456" '密码

    '连接到MySQL数据库
    cn.ConnectionString = "DRIVER={MySQL ODBC 5.1 Driver};" _
        & "SERVER=" & serverName & ";" _
        & "DATABASE=" & databaseName & ";" _
        & "USER=" & user & ";" _
        & "PASSWORD=" & password & ";" _
        & "Option=3;"
    cn.Open
End Sub

在上面的代码中,我们使用了以下属性来定义MySQL数据库连接:

  • DRIVER - 指定使用的ODBC驱动程序。
  • SERVER - 指定MySQL服务器名称。
  • DATABASE - 指定连接的数据库名称。
  • USER - 指定连接的用户名。
  • PASSWORD - 指定连接的密码。
  • Option - 指定连接选项。在本例中,我们使用的是3(adAsyncExecute)。

在成功连接到MySQL数据库后,我们可以执行SQL查询和更新操作。

执行SQL查询

以下是使用VBA代码执行SQL查询的示例:

Sub ExecuteSQLQuery()
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim serverName As String, databaseName As String
    Dim user As String, password As String, strSQL As String

    '修改以下内容来连接到您的MySQL数据库
    serverName = "localhost" 'MySQL服务器名称
    databaseName = "test" '数据库名称
    user = "root" '用户名
    password = "123456" '密码

    '连接到MySQL数据库
    cn.ConnectionString = "DRIVER={MySQL ODBC 5.1 Driver};" _
        & "SERVER=" & serverName & ";" _
        & "DATABASE=" & databaseName & ";" _
        & "USER=" & user & ";" _
        & "PASSWORD=" & password & ";" _
        & "Option=3;"
    cn.Open

    '执行SQL查询
    strSQL = "SELECT * FROM customers"
    rs.Open strSQL, cn
    '处理结果集
    Do While Not rs.EOF
        Debug.Print rs("customerName"), rs("contactName"), rs("address"), rs("city"), rs("country")
        rs.MoveNext
    Loop
    '关闭结果集
    rs.Close
    '关闭连接
    cn.Close
End Sub

在上面的代码中,我们首先连接到MySQL数据库,然后执行SQL查询“SELECT * FROM customers”。查询结果存储在Recordset对象中。我们循环遍历Recordset对象,并使用Debug.Print语句打印结果集的每一行。

执行SQL更新操作

以下是使用VBA代码执行SQL更新操作的示例:

Sub ExecuteSQLUpdate()
    Dim cn As New ADODB.Connection
    Dim serverName As String, databaseName As String
    Dim user As String, password As String, strSQL As String

    '修改以下内容来连接到您的MySQL数据库
    serverName = "localhost" 'MySQL服务器名称
    databaseName = "test" '数据库名称
    user = "root" '用户名
    password = "123456" '密码

    '连接到MySQL数据库
    cn.ConnectionString = "DRIVER={MySQL ODBC 5.1 Driver};" _
        & "SERVER=" & serverName & ";" _
        & "DATABASE=" & databaseName & ";" _
        & "USER=" & user & ";" _
        & "PASSWORD=" & password & ";" _
        & "Option=3;"
    cn.Open

    '执行SQL更新操作
    strSQL = "UPDATE customers SET city='Beijing' WHERE customerName='Customer A'"
    cn.Execute strSQL

    '关闭连接
    cn.Close
End Sub

在上面的代码中,我们首先连接到MySQL数据库,然后执行SQL更新操作“UPDATE customers SET city='Beijing' WHERE customerName='Customer A'”。该操作将更新名为“Customer A”的客户的城市信息为“Beijing”。

总结

本教程介绍了如何使用Excel VBA连接到MySQL数据库。学习如何连接到MySQL数据库可以帮助我们快速地操作Excel数据,并将数据导入到MySQL数据库中。

通过本教程,您已经学会了:

  • 下载和安装MySQL Connector / ODBC。
  • 配置ODBC数据源。
  • 使用Excel VBA连接到MySQL数据库。
  • 执行SQL查询和更新操作。

Happy coding!