大家好,我是涂涂
今天涂涂给大家说说SQL,何为SQL呢?
SQL,即结构化查询语言(Structured Query Language)的简称,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL极大的灵活性和强大的查询功能,是我们不应错过的查询利器。
今天涂涂给大家分享下如何在Excel中通过VBA方法来使用SQL语句进行数据的查询。
问题:
从数据源工作表中,查找中文名称为“万用表”的数据,并将这些万用表的【中文名称】、【型号】、【管理编号】信息导入到结果表工作表中。
![9f72291b41fb2072db6e051222d98360.png](https://i-blog.csdnimg.cn/blog_migrate/de6ec8e478c6a1aa72125350ca07e369.jpeg)
操作方法
步骤1
◆选中结果表工作表,点击【开发工具】选项卡,点击【Visual Basic】,打开VBE编辑器
◆在VBE编辑器中,选中左侧工程管理器中的结果表,右键插入模块
◆双击新建的模块,在右侧的代码区域输入下记代码,保存,关闭VBE编辑器
![48e842623f8c518b7abf44dc04d8629b.png](https://i-blog.csdnimg.cn/blog_migrate/72ae06b62e5e15a7d8df38ed8ab12c53.jpeg)
代码:
Sub SQL_01() Dim Conn As Object Dim Rst As Object Dim SQL, Ver As String Dim i As Long Set Conn = CreateObject("ADODB.Connection") Set Rst = CreateObject("ADODB.Recordset") Cells.ClearContents Ver = "provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data source=" & ThisWorkbook.FullName 'Excel2007以上版本 Conn.Open Ver ' ********************************************************************************** SQL = "Select 中文名称,型号,管理编号 from [数据源$] where 中文名称='万用表'" ' ********************************************************************************** Set Rst = Conn.Execute(SQL) For i = 0 To Rst.Fields.Count - 1 Cells(1, i + 1) = Rst.Fields(i).Name Next i Range("A2").CopyFromRecordset Rst Conn.Close Set Conn = Nothing Set Rst = NothingEnd Sub
步骤2
◆选中结果表工作表,点击【开发工具】选项卡,点击【插入】下拉箭头,点击【按钮】命令
◆在表格空白处,拖动鼠标画一个矩形,然后指定宏即可
![b0086a0f36c92f5c5f3122956653115b.gif](https://i-blog.csdnimg.cn/blog_migrate/5476ba0202a237700531e3a6f3f0400b.gif)
效果图:
![698a8955dc7418a9197886cebdedbdc6.png](https://i-blog.csdnimg.cn/blog_migrate/8245372f1b1388e646d618a862aa5a03.jpeg)
修改查询条件:
◆按打开VBE编辑器,修改代码中的SQL语句
例如:需要提取中文名称为“万用表”的所有信息,如何修改呢?
只需将SQL语句中的全部列字段删除,换成*星号即可
SQL语句修改如下:
select * from [数据源$] where 中文名称='万用表'
SQL select子句语法:
select 列标题1,列标题2,列标题3 from [工作表名称$] where 列标题 运算符 值
select 中文名称,型号,管理编号 from [数据源$] where 中文名称='万用表'
◆中文名称,型号,管理编号叫做列字段(即列标题),各字段之间使用英文逗号隔开
◆查询结果返回的信息,分别对应中文名称,型号,管理编号列标题,列标题的增删请随意
◆[数据源$]是数据源工作表的名称,后面必须要跟一个$符号,并用方框号[ ]括起来
◆中文名称='万用表',这里的值是文本,需要使用单引号引起来
Tips:
本例的数据源工作表和结果表工作表同在一个工作簿中,如果数据源是单独的一个工作簿,那么SQL语句中则需要增加数据源工作簿的地址了。
[D:Excel关联仪器总表.xlsx].[数据源$]
◆第一方括号[ ]是包含路径的数据源工作簿名称,第二个方括号[ ]是数据源工作簿中工作表的名称
◆两个方括号之间使用.点号连接,表示从属关系
等更新太累,想要了解更多,分享你的疑难杂症,
欢迎关注我的Excel微信公众号,进群一起探讨。
![b6d604337ac2e9d0d5a2da5bbafc567c.png](https://i-blog.csdnimg.cn/blog_migrate/c1063f618519b5c3bc6b344ea7589928.jpeg)
职场高效Excel