数据量少的时候,用上面的IF判断合营循环构造去完成数据查询方便,也觉得不出来韶光的耗费问题。当数据量很大时,可以明显觉得出韶光的耗费问题,同时程序的判断语句也比较繁芜。本日我们就要用大略的SQL技能在VBA环境中取代冗长的IF判断合营循环的办法,同时也大大提高了查询效率。不仅如此,还可将用它的查询结果输出到指定的地方:Excel内部的事情表区域或者列表控件。本日我们就先分享一下用SQL技能如何将查询结果输出到Excel内部的事情表区域吧!
利用SQL技能前,我们必须知道其步骤过程利用规范:1-创建数据访问的ADODB.Connection连接工具实例和ADODB.RecordSet数据记录凑集工具实例;2-带条件的SQL字符串语句的的编辑; 3-数据连接工具实例的打开(例如:cnn.Open "Provider=Microsoft.ACE.OLEDB.15.0;Extended Properties=Excel 12.0;Data Source=" & DS_Path,个中:cnn-连接工具,DS_Path-数据源的完全路径);4-构造化查询语句实行(办法一:cnn.Excute (sql_str);办法二:rst.Open cnn, sql_str,A,B 个中:cnn是连接工具,sql_str是带条件的SQL字符串语句,A是数据记录游标模式,B是数据访问办法);5-将构造化查询的结果输出;6-关闭数据记录凑集工具实例并置空、关闭数据连接工具实例并置空。
对付我们Office办公事情的朋友们而言,大概上面的ADODB不是很清楚是什么意思,我们有必要在这里遍及下其知识,它的英文全称是“Active Data Objects DataBase”中文意思即是“活动数据工具数据库”。好了,现在我们就来以模糊查询办法如何实现SQL输出到Excel事情表的数据区域?

一、SQL数据操作之一“查询”操作的语句字符串书写规范
(一)语法格式:
"Select 字段名列表 From 访问的数据表 Where 条件列表 [Order by…] "
(二)几点解释:
1-“字段名列表”规范形如“字段名1[,字段名2[,字段名3…]]…等,若是所有字段则直接用号
2-访问的数据表可以是数据库表或者指定的Excel的数据区域,例如Excel类型的数据源表的格式该当是中括号括起来(其他类型的数据库表不须要中括号括起来)的形如[Sheet1$A1:D21]样式,这里的$是Excel ODBC驱动程序识别Excel文件的事情表Sheet时追加的字符
3-条件列表是形如“Where 年事>17 And 姓名=’张三’ Or 姓名 Like ‘%王%’”等形式,个中的“姓名 Like ‘%王%’”便是一种模糊查询条件(探求含姓名中含有“王”的人,%是通配符)
4- Order by…是按照各种办法查询检索,可选可省写
二、准备一个待查询的Excel数据区域
我们输入下面一片大略的数据以备作查询利用,并添加一个查询交互按钮,再增设一个数据验证输入的单元格作为姓名查询的关键字输入或选择。如下图所示
图1 准备的Excel事情表Sheet1查询数据
三、体验通过SQL进行的模糊查询和精确查询的结果输出到Excel事情表给定的区域的情形
(一)在姓名查询关键字输入单元格中输入模糊的关键字。如下图所示
图2 模糊查询关键字输入
(二)点击<查询>按钮,将在结果区域涌现模糊查询的结果数据。如下图所示
图3 Excel事情表给定的区域呈现的模糊查询结果数据
(三)通过该关键字数据验证单元格选定一个精确的姓名。如下图所示
图4 精确查询关键字的选定(非输入)
(四)又再次点击<查询>按钮,将在结果区域涌现涌现精确查询的结果数据。如下图所示
图5 Excel事情表给定的区域呈现的精确查询结果数据
(五)在数据验证单元格中如果未输入关键字或未选定关键字,则将涌现空关键字输入的缺点提示。如下图所示
图6 未输入关键字或未选定关键字的情形
(六)在数据验证单元格中如果输入的关键字不存在,则将涌现数据记录未找到的的缺点提示。如下图所示
图7 输入不存在的关键字查询的情形
看了上面的操作体验,接下来我们来看一下在VBA后台是如何实现的呢?下面,我们将呈现实现的功能代码,代码的每一句险些我们都用绿色注释的非常清楚,便于大家学习互换。
四、通过SQL进行查询Excel数据结果输出到Excel事情表给定区域的功能代码截图
模块1中功能代码:
图8 功能代码截图1
图9 功能代码截图2
图10 功能代码截图3
利用SQL进行查询Excel数据结果输出到Excel事情表给定区域的方法我们就给各位分享完毕了,在这里,我们分别用了模糊与精确查找两种办法实现了SQL查询Excel数据结果输出到Excel事情表给定区域。这种查询对付有大量Excel数据来讲有非常的现实的查询效率意义,大大地简化了繁琐的IF构造判断结合循环构造的检索,所有的条件都简化到SQL的Where子句中去即可。希望本日的分享能够为各位的数据查询供应这种更简洁的方法。
当然,有朋友会问:能否将Excel数据用SQL查询结果输出到像其他软件那样放在窗体上的像表格那样的控件中呈现呢?放心,我们会放不才一期作品中来办理这个问题,请大家平时留神关注!
末了,还是老话,非常感谢各位粉丝朋友对我的关注(头条号:跟我学Office高等办公)、推广和点评,有了各位的支持,我会带着各位的鼓励一如既往地推出更多有实用意义的作品,感激!