语言建立一个学生籍贯管理簿_Excel中一个被严重忽视的大杀器功能

82a2d9f34e13918199b08e500807291d.png

一说到Excel工作簿内容合并、多工作簿查询、外部数据源的查询引用的实现,那么很多人第一想法就是使用公式、VBA、Power query。没错,这几个确实可以。我本人是一个Power query重度依赖者,经常使用PP来做数据查询。可后来慢慢的发现,Power query问题真的很多,比如说占用内存太大、运行非常缓慢。另外,一些低版本的Excel不支持PP,同时WPS也是不支持PP的。这个让我非常头疼,于是不得不找其它办法。于是在不经意间发觉了以下这个一直被忽视的东西:Microsoft Query。于是,我就使用这玩意试着分别连接SQL Server做了一个动态财务的科目汇总表查询,和连接Access做了一个动态查询。效果如下:

9ed32d5a25bce6c9df73024c0cec1a00.png
科目汇总查询表

ba7d42f7eda3dbdff2e640393023ff1c.png
工程款支付查询表

以上,两个测试完全实现了使用参数的动态查询。以往,实现这种效果,要么使用VBA、要么使用power query。以下,我们来看一下怎么实现它呢。

1、打开菜单栏,找到Microsoft Query的

b3055e6b4528c7783910081257100cfe.png

2、进入数据源配置界面

04ab683da7242c99eefd13a60ce92050.png

这里已经存在了常用的Excel、Access这两种数据源连接方式。但其他的,我们需要单独建立。在此以SQL Serve为例。

7559cf8a156b47d5b5e3c9b67631e8c3.png

332d4d676d8791d3aaa4d62809be2ec5.png

刚才建立的数据源就出现在了列表里面

8efbc52c8b8c1f9db6a3c2671db3229d.png

接下来我们来看如何实施查询

首先,选择一下数据库,然后添加一下需要用到的表

90e4d04395af8406e42c0bb105866ef0.png

f710acf35aa1d99e9768fc8cdff5b5cc.png

以上这个界面,作为使用过Foxpro的人应该不陌生,果然是上古的杰作。我们看到,从数据添加的表,自带了表间关系。这个非常省心,如果是Excel查询,那么就得自己建立表间关系了。

接下来,我们把需要用到的的字段全部添加到列表里面,因为有表间关系,会自动做数据参照。查询器里面的好多细节操作,在此就不过多描述了。

现在我们来看一下,查询器自己生成的 SQL语句

1629672a29aa3e07fbc213204c3dec50.png

在使用过程中,因为需要做动态查询,因此加入了查询参数,然后这部分参数又被绑定到了工作表的单元格上。只要在这部分单元格就可以作为查询条件来使用,只要这部分单元格数值有变动,那么查询就会同步更新,根本不需要刷新或者添加按钮来执行查询。具体如下:

b91440012a020e0f62a0598d1a00bd15.png

现在,让我们来看看,做出同样效果的东西,VBA和Power Query的工作量:

首先,来看VBA的工作量:

1、单独设计的查询界面

6e77fe50181720b8ecad554ce660aa3e.png

2、部分VBA代码

7b3b31d11074f248e7ae6a3778b76715.png

至于power query稍微好一些,在引入数据的时候一句SQL语句就能解决,但是这货对于使用参数做动态查询实在太麻烦,需要合并好几几次查询才行。

最后,对比Microsoft Query、VBA、Power query。可以说Power Query应该是Microsoft Query 的升级版,但是PQ使用的是M语言,在使用便利性和性能上不占优势,随便一个查询动辄就是几个G的内存占用,分分钟就死机。使用过多以后,感觉目前的PQ,还真只是一个玩具,它还有很大的改进空间。而VBA,这个看似无所不能,但正是无所不能才更加不那么好控制。至于Microsoft Query而言,并非没有缺点,最大的缺点我认为是多表连接查询时候没法使用左连接、右连接以及外部连接,只能使用内部或者说等值连接。所以,对于日常的合并工作表,还是建议使用MQ。

相关资源:学生籍贯管理系统
已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页