最近一方君工作中要查询编辑很多的数据(超过30万行,25个字段),这么多数据放在Excel表中当然是没办法操作的,筛选的时候很容易崩溃,原来用得很顺滑的一些公式,一计算就未响应,多点几下Excel就很不客气的崩溃了,感觉一万个坑啊有木有,所以这个时候Sql查询就闪亮登场了,是的,sql能完美解决上述所有问题。
好,你可能还不知道Sql是个啥,我们先来简单了解下他。
SQL全称是结构化查询语言,最早是IBM公司的圣约瑟研究实验室为其关系型数据库管理系统SYSTEMR开发的一种查询语言,SQL语言结构简洁,功能强大,简单易学,因此从IBM公司1981年推出以来,SQL语言得到了广泛的应用,如今无论是Oracle,SQL Server这些大型的数据库管理系统,还是Access这些常用的数据库开发系统,都是支持SQL作为查询语言。
以上一堆字也可以不看哈。
反正我们只要知道SQL是个查询编辑语言,本文只是粗浅介绍查询功能,主要还是讲怎么在Excel的Ribbon功能区做一个Combobox加一个按钮,制作这么一个查询小工具,这里面会涉及到的知识点如下:
- xml架构元素
- Combobox控件动态属性
- Function函数
- ADO对象的属性与方法
先来看下最终的效果吧,如下图:
你可以自己输入sql语句,也可以从列表中选,因为每次输入后会自动保存,作为查询历史显示在下拉列表中。当然这里我有点偷懒,这个查询历史数据是放在了Excel表中,大家可以用insert into语句放进数据库去重会更好些。
首先,我们要做好功能区,xml代码如下(如何制作可以参考我的课程哦)
可以看到很多属性都是动态的,需要做无效更新。具体设置方法如下
界面制作好以后,就要查询数据了,由于我们这里要实现的功能是输入sql语句就去自动查询结果显示到表格中,基本步骤为连接数据库→执行combobox中你输入的sql语句得到记录集→输出到Excel表中。连接数据库的动作我们最后单独写到一个函数中去,得到记录集的函数也是单独写一个函数比较好。
连接数据库:
返回记录集:
然后我们每次查询的时候只要传递一个sql语句过来执行一下就可以了,这个sql语句可以从combobox里面去取过来就ok,具体如下:
注意这里的txt是一个公共的string变量,来自combobox中的text文本。
好,到这里我们这个小工具就做好了,你只要将这个表格跟数据库文件放一起,在combobox中输入sql语句就可以查询出结果了,这里我连接的是带密码的Access数据库,你也可以直接连接Excel文件,实现所谓的不打开工作簿取数,这个应该是蛮多人感兴趣的,或者连接oracle,sql server甚至是Sap,这些都是可以的。Sql作为一个查询编辑语言,非常好用,相信你用熟悉了以后就再也不想用Excel中的函数了,特别是数据量比较大的时候。
本文中的表格一样也是放在公众号的资料网盘路径里了,回复“一方”即可获取,大家需要的可以取下载。