行业知识
【EXCEL
2026-10-26 21:14:43
来源:互联网转载
课程来源:王佩丰老师的《王佩丰学VBA视频教程》,如有侵权,请联系删除!
目录
1. 使用ADO链接外部数据源
2. 常用SQL语句(Execute(SQL语句))
2.1 查询数据、查询某几个字段、带条件查询、合并两表数据、插入新纪录
2.2 修改、删除一条数据、Vlookup、查询结果赋值到数组
2.3 注意事项(select语句 执行顺序)
3. 抓取数据实例
1. 使用ADO链接外部数据源
' Excel文件' 中间的两双引号其中一个为转义字符Dim conn As New ADODB.Connectionconn.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. 抓取数据实例
'使用前请确认是否勾选了Microsoft ActiveX Data Object x.x Library!!!' VBA → 工具 → 引用Sub Scrape_data()Dim conn As New ADODB.ConnectionDim 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.CloseEnd Sub