【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
相关推荐
梅孔立18 小时前
Java 基于 POI 模板 Excel 导出工具类 双数据源 + 自动合并单元格 + 自适应行高 完整实战
java·开发语言·excel
开开心心就好2 天前
系统重装前必备的智能驱动备份工具
windows·计算机视觉·计算机外设·excel·模块测试·csdn开发云·威胁分析
向宇it2 天前
php高性能的导出excel读写扩展——xlswriter,比传统的Spreadsheet要快很多
php·excel·xlswriter
yanweijie03172 天前
对比VLOOKUP、XLOOKUP、INDEX+MATCH三大查找函数
excel
Codiggerworld3 天前
Vim的语法:删除、复制、粘贴,像说话一样自然
编辑器·vim·excel
Pentane.3 天前
【数据分析 | 农业项目】蔬菜类商品的自动定价与补货决策 | Tableau & Excel
数据挖掘·数据分析·excel·tableau
happy_baymax3 天前
Simulink 端口自动生成工具 (v2.1)(EXCEL+m语言)
服务器·matlab·excel·simulink
SunnyDays10113 天前
如何使用 C# 高效实现 Excel 与 CSV 的互相转换
c#·excel·csv
热爱生活的五柒3 天前
excel的使用教程
excel
城数派3 天前
2025年我国省市县三级的平均坡度数据(Excel\Shp格式)
arcgis·信息可视化·数据分析·excel