使用 SQL 语句将 Excel VBA 中的表格修改为 MySQL 数据库
wptr33 2025-05-03 16:59 3 浏览
在 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 数据库中。你可以根据需要扩展这个示例,例如添加更新、删除等操作。
相关推荐
- 删库不跑路!我含泪写下了 MySQL 数据恢复大法…
-
1前言数据恢复的前提的做好备份,且开启...
- mysqldump备份操作大全及相关参数详解
-
mysqldump简介mysqldump是用于转储MySQL数据库的实用程序,通常我们用来迁移和备份数据库;它自带的功能参数非常多,文中列举出几乎所有常用的导出操作方法,在文章末尾将所有的参数详细说明...
- MySQL表中没有主键,怎么找到重复的数据
-
在没有主键的MySQL表中查找重复数据可能会有点复杂,但通过使用下述方法中的任何一种,你都应该能够识别并处理这些重复项。在MySQL中,没有主键的表可能会存在重复的数据行。为了找到这些重复的数据,你可...
- MySql 大数据 批量删除 Hint 操作
-
业务中有会碰到数据库中大量冗余数据的情况。比如压测场景,这个时候就需要我们去清理这些数据。怎么操作呢?这个时候mysql的hint就可以派上用场了,直接上语句:DELETE/*+QU...
- Linux卸载MySQL教程(linux 卸载数据库)
-
在Linux系统中,卸载MySQL需要执行以下步骤:停止MySQL服务在卸载MySQL之前,需要先停止MySQL服务,可以使用以下命令停止MySQL服务:sudosystemctlstopmys...
- 用SQL语句删除数据库重复数据,只保留一条有效数据
-
原文链接http://t.zoukankan.com/c-Ajing-p-13448349.html在实际开发中,可能会遇到数据库多条数据重复了,此时我们需要删除重复数据,只保留一条有效数据,用SQ...
- Mybatis 如何批量删除数据(mybatis删除多条数据)
-
Mybatis如何批量删除数据本期以最常用的根据id批量删除数据为例:接口设计1:List类型单参数IntegerdeleteByIds(List<Integer>ids);...
- MySQL常用命令汇总(mysql数据库常用命令总结)
-
以下是一份MySQL常用命令汇总,涵盖数据库、表、数据操作及管理功能,方便快速查阅:一、数据库操作1.连接数据库```bash...
- 「删库跑路」使用Binlog日志恢复误删的MySQL数据
-
前言“删库跑路”是程序员经常谈起的话题,今天,我就要教大家如何删!库!跑!路!开个玩笑,今天文章的主题是如何使用Mysql内置的Binlog日志对误删的数据进行恢复,读完本文,你能够了解到:MySQL...
- MySQL查询是否安装&删除(判断mysql是否安装)
-
1、查找以前是否装有mysql命令:rpm-qa|grep-imysql可以看到如下图的所示:...
- windows版MySQL软件的安装与卸载(windows卸载mysql5.7)
-
一、卸载1、软件的卸载方式一:通过控制面板方式二:通过电脑管家等软件卸载方式三:通过安装包中提供的卸载功能卸载...
- 使用 SQL 语句将 Excel VBA 中的表格修改为 MySQL 数据库
-
在ExcelVBA中与MySQL数据库进行交互时,通常需要使用ADODB连接来执行SQL语句。以下是一个完整的示例,展示了如何将Excel表格中的数据插入到MySQL数据库的...
- MySql数据库Innodb引擎删除一行数据会在内存上留下空洞吗
-
当使用InnoDB引擎删除一行数据时,实际上并不会在内存上留下空洞。InnoDB存储引擎采用了多版本并发控制(MVCC)机制来实现事务的隔离性,每行记录都会保存两个隐藏列,一个保存行的创建版本,另一个...
- MySQL批量生成建表语句(mysql 批量新增)
-
摘要:MySQL批量生成建表语句关键词:MySQL、大批量、挑选、建表语句整体说明在使用MySQL的时候,遇到需要在大批量的表中,挑选一部分表,权限又只有只读权限,工具又没有合适的,最终使用了My...
- MySQL数据库之死锁与解决方案(mysql解决死锁的三种方法)
-
一、表的死锁产生原因:...
- 一周热门
-
-
C# 13 和 .NET 9 全知道 :13 使用 ASP.NET Core 构建网站 (1)
-
因果推断Matching方式实现代码 因果推断模型
-
git pull命令使用实例 git pull--rebase
-
git pull 和git fetch 命令分别有什么作用?二者有什么区别?
-
面试官:git pull是哪两个指令的组合?
-
git 执行pull错误如何撤销 git pull fail
-
git fetch 和git pull 的异同 git中fetch和pull的区别
-
git pull 之后本地代码被覆盖 解决方案
-
还可以这样玩?Git基本原理及各种骚操作,涨知识了
-
git命令之pull git.pull
-
- 最近发表
- 标签列表
-
- git pull (33)
- git fetch (35)
- mysql insert (35)
- mysql distinct (37)
- concat_ws (36)
- java continue (36)
- jenkins官网 (37)
- mysql 子查询 (37)
- python元组 (33)
- mysql max (33)
- mybatis 分页 (35)
- vba split (37)
- redis watch (34)
- python list sort (37)
- nvarchar2 (34)
- mysql not null (36)
- hmset (35)
- python telnet (35)
- python readlines() 方法 (36)
- munmap (35)
- docker network create (35)
- redis 集合 (37)
- python sftp (37)
- setpriority (34)
- c语言 switch (34)