【EXCEL_VBA_基础知识】15 使用ADO操作外部数据

课程来源:王佩丰老师的《王佩丰学VBA视频教程》,如有侵权,请联系删除!

目录

[1. 使用ADO链接外部数据源](#1. 使用ADO链接外部数据源)

[2. 常用SQL语句(Execute(SQL语句))](#2. 常用SQL语句(Execute(SQL语句)))

[2.1 查询数据、查询某几个字段、带条件查询、合并两表数据、插入新纪录](#2.1 查询数据、查询某几个字段、带条件查询、合并两表数据、插入新纪录)

[2.2 修改、删除一条数据、Vlookup、查询结果赋值到数组](#2.2 修改、删除一条数据、Vlookup、查询结果赋值到数组)

[2.3 注意事项(select语句 执行顺序)](#2.3 注意事项(select语句 执行顺序))

[3. 抓取数据实例](#3. 抓取数据实例)


1. 使用ADO链接外部数据源

vbnet 复制代码
' Excel文件
' 中间的两双引号其中一个为转义字符

Dim conn As New ADODB.Connection
conn.Open "Provider = Microsoft.ACE.OLEDB.12.0;Data Source=D:\data\Edata.xlsx; _
extended properties=""excel 12.0;HDR=YES"""
conn.Close

' ACCESS文件
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\data\Adata.accdb"

' Mysql数据库
conn.Open  "Provider=SQLOLEDB;DataSource=" & Path & "; _
Initial Catolog=" & strDataName


' MSSQL数据库
conn.Open  "Provider=MSDASQL;Driver={SQL Server}; _
Server=" & Path & ";Database=" & strDataName

' Oracle数据库
conn.Open  "Provider=madaora;Data Source=MyOracleDB; _
 User Id=UserID; Password=Password"

2. 常用SQL语句(Execute(SQL语句))

2.1 查询数据、查询某几个字段、带条件查询、合并两表数据、插入新纪录

2.2 修改、删除一条数据、Vlookup、查询结果赋值到数组

2.3 注意事项

2.3.1 SQL LEFT JOIN 与 Right JOIN(参考:SQL LEFT JOIN 关键字

LEFT JOIN :左表 (table_name1) 返回所有的行,即使在右表 (table_name2) 中没有匹配的行。

2.3.2 SQL Select语句执行顺序(自右向左)

1. 先执行红框语句,生成数据源表

2. 其次执行select语句,选择包含所选字段的数据(选择列)

3. 抓取数据实例

vbnet 复制代码
'使用前请确认是否勾选了Microsoft ActiveX Data Object  x.x  Library!!!
' VBA → 工具 → 引用
Sub Scrape_data()

Dim conn As New ADODB.Connection
Dim sql As String

' 清空当前sheet数据
ActiveSheet.Range("a2:z1000").ClearContents 

'注意这个链接文件的路径!!!需要把edata文件放入d:\data文件夹!!
conn.Open ("Provider = Microsoft.ACE.OLEDB.12.0;_
Data Source=D:\data\Edata.xlsx;extended properties=""excel 12.0;HDR=YES""")

sql = "select a.姓名,年龄,性别,月薪 from (select * from [data$] union all select * from [data2$])a left join [data3$] on a.姓名=[data3$].姓名"

'仅返回数据(不会返回表头,因已select)
ActiveSheet.Range("a2").CopyFromRecordset conn.Execute(sql) 

conn.Close
End Sub
相关推荐
SunnyDays10112 小时前
Java 设置 Excel 数据验证:整数、日期、文本长度、下拉列表和时间
java·excel·数据验证·下拉列表
Metaphor6922 小时前
使用 Python 设置 Excel 行列自适应 【代码示例】
python·excel
用户03321266636718 小时前
使用 Python 设置 Excel 行列自适应 【代码示例】
python·excel
企业数字化笔记19 小时前
固定资产Excel批量导入怎么防重复?资产编码、重复检查和错误回执
java·后端·excel
CORNERSTONE3651 天前
低代码开发有哪些应用场景?
低代码·excel·erp·mes·企业数字化
小葱炖豆腐2 天前
python绘制excel折线图
python·excel·numpy·pandas·matplotlib
cspttty2 天前
2026年财务分析岗JD中的Excel、SQL、BI与业务分析要求
大数据·sql·excel
cspttty2 天前
HR数字化校招准备路线:Excel、SQL、BI和AI工具怎么学
人工智能·sql·excel
鲲穹AI种草3 天前
Excel 表格批量处理与数据整理,多款表格工具能力客观记录
excel·表格处理
cspttty3 天前
2026秋招供应链分析师技能栈:SQL、Excel、BI与业务分析
数据库·sql·excel