使用 SQL 语句将 Excel VBA 中的表格修改为 MySQL 数据库

yumo6664个月前 (03-28)技术文章38

在 Excel VBA 中与 MySQL 数据库进行交互时,通常需要使用 ADODB 连接来执行 SQL 语句。以下是一个完整的示例,展示了如何将 Excel 表格中的数据插入到 MySQL 数据库的表中。这个示例假设你已经设置好了 MySQL 数据库,并且已经建立了与数据库的连接。

1. 准备工作

首先,确保你已经安装了 MySQL ODBC 驱动程序,并且在 VBA 中引用了 Microsoft ActiveX Data Objects x.x Library

2. 连接 MySQL 数据库

在 VBA 中,你可以使用以下代码来连接 MySQL 数据库:

VBA

Dim conn As Object
Set conn = CreateObject("ADODB.Connection")

' 连接字符串
Dim connStr As String
connStr = "DRIVER={MySQL ODBC 8.0 Unicode Driver};" & _
          "SERVER=your_server_name;" & _
          "DATABASE=your_database_name;" & _
          "USER=your_username;" & _
          "PASSWORD=your_password;" & _
          "OPTION=3;"

' 打开连接
conn.Open connStr

假设你有一个 Excel 表格,其中包含以下数据:

ID

Name

Age

1

Alice

25

2

Bob

30

3

Carol

22

你可以使用以下 VBA 代码将这些数据插入到 MySQL 数据库的表中:

VBA

Sub InsertDataIntoMySQL()
    Dim conn As Object
    Set conn = CreateObject("ADODB.Connection")
    
    ' 连接字符串
    Dim connStr As String
    connStr = "DRIVER={MySQL ODBC 8.0 Unicode Driver};" & _
              "SERVER=your_server_name;" & _
              "DATABASE=your_database_name;" & _
              "USER=your_username;" & _
              "PASSWORD=your_password;" & _
              "OPTION=3;"
    
    ' 打开连接
    conn.Open connStr
    
    ' 获取 Excel 表格中的数据
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1") ' 假设数据在 Sheet1 中
    
    Dim lastRow As Long
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    
    Dim i As Long
    For i = 2 To lastRow ' 假设第一行是标题
        Dim id As Long
        Dim name As String
        Dim age As Long
        
        id = ws.Cells(i, 1).Value
        name = ws.Cells(i, 2).Value
        age = ws.Cells(i, 3).Value
        
        ' 构建 SQL 插入语句
        Dim sql As String
        sql = "INSERT INTO your_table_name (ID, Name, Age) VALUES (" & id & ", '" & name & "', " & age & ");"
        
        ' 执行 SQL 语句
        conn.Execute sql
    Next i
    
    ' 关闭连接
    conn.Close
    Set conn = Nothing
    
    MsgBox "数据已成功插入到 MySQL 数据库中!"
End Sub

4. 解释代码

  • 连接字符串connStr 是连接 MySQL 数据库的字符串,你需要根据你的 MySQL 服务器设置进行修改。
  • 获取 Excel 数据:代码从 Excel 表格中读取数据,并逐行插入到 MySQL 数据库中。
  • SQL 插入语句sql 变量存储了插入数据的 SQL 语句。
  • 执行 SQL 语句conn.Execute sql 执行 SQL 语句,将数据插入到 MySQL 数据库中。

5. 注意事项

  • 确保 MySQL 数据库中的表结构与 Excel 表格中的数据结构一致。
  • 如果数据量较大,建议使用事务来批量插入数据,以提高性能。
  • 在实际应用中,建议添加错误处理机制,以捕获并处理可能出现的错误。

6. 错误处理

你可以使用 On Error 语句来捕获并处理错误:

VBA

On Error GoTo ErrorHandler

' 你的代码

Exit Sub

ErrorHandler:
    MsgBox "发生错误: " & Err.Description
    conn.Close
    Set conn = Nothing
End Sub

通过这种方式,你可以确保在发生错误时,程序能够优雅地处理并关闭数据库连接。

7. 概括

通过上述步骤,你可以使用 VBA 将 Excel 表格中的数据插入到 MySQL 数据库中。你可以根据需要扩展这个示例,例如添加更新、删除等操作。

相关文章

VMware替代实战手册:更高效的MySQL数据库迁移方案

数据库作为数字化用户的核心资产,其迁移是一项复杂且重要的任务,特别是在VMware平台替换及IT基础设施更新换代之时,尤其需要保障数据库迁移过程的平稳、流畅。深信服推出的数据库管理平台(DMP)是为关...

从SSH输入命令备份/还原恢复MySQL数据库教程

有时候你需要把你的网站从一个服务器迁移到另一个服务器,在迁移网站的同时,你也需要移动网站的数据库。不过一些网站可能有GB级别大小的数据库(2GB或更大),如果通过PHPMyAdmin导出或导入非常难。...

Windows下MySQL8.0数据库文件路径修改和数据转移

什么情况需要修改MySQL数据文件路径?MySql在安装之初,默认的安装位置与数据保存位置都是在C盘,时间久了,C盘就会爆满,因此需要修改MySql数据保存位置。本例从C盘转移到D盘。操作步骤:1、...

一次几乎不可能的数据库迁移

最初,我们把一个文件当作数据库,将数据转化为 JSON 大对象写入进去,后来,它的速度越来越慢,我们决定进行数据库的迁移,这个过程中我们遇到了一些问题和障碍,但最终我们成功完成了这一次不太可能的数据库...

在Windows环境下MySQL命令行备份还原数据库图文教程

本篇以root用户为例,仅测试Windows环境下操作,学习不要在生产环境下折腾。这里分享一下在Windows环境下MySQL命令行备份还原数据库图文教程。常用情况:面板无法重设密码并且忘记root密...