随着大数据时代的到来,存储和使用的数据呈几何级数增长。大数据的特点是数据体量大、价值密度低,即便是经过数据ETL后,数据量级很多情况下也远远超过了Excel所能承载的104万行数据库连接,这给以Excel为主要工具的数据分析人员带来了较大困难和障碍。虽然微软在office2010后陆续推出了PowerPivot,PowerQuery等插件,但对于用惯了Excel常规功能的人还是不太方便。今天我跟大家介绍一个解决方案:以Excel为客户端,以SQL作为海量数据存储区,通过VBA代码从SQL数据库中按筛选条件抽取数据,用于后期的数据分析和可视化。效果如图:

干净利落,响应迅速,海量数据中精准抓取,轻松应付千万量级数据。注:

这里设置了数据透视表更新事件PivotTableUpdate:VBA中的事件就像是一个声控开关,当有声音响起时灯就会亮起,同理在点击切片器时,数据透视表更新,继而触发事件代码运行。将诸多动作捆绑在点击切片器这个操作上。那么以上效果具体如何实现呢?

01

SQL Server数据库的下载和安装

可到微软官网下载数据库连接,并均选择默认选项安装便可,非常简单。这里我安装的是SQL Server2008R2版本。

02

Excel与SQL数据库连接模块代码

这一部分是重点,我曾经在网上搜索到了很多种方法,经过反复实践发现,这些方法偶尔都会出现一些bug,弹出各种奇奇怪怪的错误对话框,让人心力交瘁。直到我遇见了以下这种方法,简洁有效, 使用方便,百试不爽。虽然购买课程花了我299RMB,但是感觉很值,解决了我在IT系统开发过程中的很多问题。今天我只节选最经典的数据库连接模块,为大家做个简单的分享。拿走不谢!

吃水不忘挖井人,更多精彩内容详见《VBA专业人才特训班【高级班】课程》

代码如下:

数据库模块中已经定义好了QueryExt查询函数和SQLExt执行函数,具体使用方法非常简单,只要按需创建好strSQL语句字符串,将其作为函数的唯一参数直接调用QueryExt或SQLExt即可。举例请见下文。

03

应用实例

这里,我们想按照省份名称,将全国各城市的经济人口数据,从SQL数据库中取出,并按降序排列后粘贴到Excel指定单元格内。

Step1:准备好经济人口数据,并将其导入到SQL数据库中,可按照数据导入向导逐步操作,非常简单。数据格式如下:

Step2:将省份名称制作成透视表,插入切片器,将切片值结果作为参数传递。这里设置了省份参数para:

para= Sheets(“Province_data”).Cells(2, 23),也即W2单元格作为数据透视表切片结果区。

Step3:设置数据透视表更新事件,注意以下代码需要与数据透视表放在同一张工作表中,数据透视表更新事件才有效。

Step4:新建数据抓取模块,编写“省市数据源抓取”子程序。

数据库连接_历史被拖库数据下载_数库大数据

Step5:在开始-条件格式中为Province_data工作表A5:F30区域设置数据条。

至此,大功告成。

限时特惠:本站每日持续更新海量设计资源,一年会员只需29.9元,全站资源免费下载
站长微信:ziyuanshu688