问题:
Excel中使用Mircosoft Query检索外部数据时, 遇到一个奇怪的问题。使用一个视图从SQL Server 中读取数据,使用一个文本字段作为过滤条件。当随机改变过滤值时,刷新数据会导致Excel一直没有响应而死掉。环境是Excel 365 和 SQL Server 2017。
分析:
这个查询并不复杂,SQL Server 返回数据耗时几秒以内。Mircosoft Query 已经使用十多年了。和Excel 配合使用,是查询统计数据的一个利器。有以下特点:
1、可以作为数据透视表的数据源。
2、通过ODBC可以连接Excel、Access、Sql Server等常见格式的数据源。
3、支持过滤条件参数动态设置,而且可以关联到单元格,甚至自动跟踪单元值的变化来刷新数据。
虽然这么多年了用着很挺顺手,但随着Office和SQL Server的不断升级,现在却遇到了新问题。
有两个细节:SQL Server 收到了执行查询的部分SQL语句,但还在执行中。Excel状态栏尚未出现提示:正在读取后台数据……
一时也没有找到相关问题的解决办法。该查询语句在SQL Server 和 Power Query 下执行没有任何问题。
解决:
时不我待,下决心用新的Power Query取而代之。不用不知道,确实比Microsoft Query更强大,花一点功夫,就可以很方便地实现绝大部分原有功能。
例如:
1、可以作为数据透视表的数据源。
2、ODBC退居二线,在Power Query 编辑器中可以连接当下主流文件、数据库等更多数据源。
3、支持命令参数,同样可以关联到命名的单元格,但还没有找到自动跟踪单元值的变化来刷新数据。
补充:
1、对基于Microsoft Query使用方式的改进。
首先,之前,对用于查询参数的单元格,使用了数据验证之序列,并联到其他单元格区域。序列的值是静态的,需要手工维护。现在,为实现自动更新序列,直接关联一个包含序列的外部连接(测试发现数据验证不

本文描述了在Excel365中使用MicrosoftQuery从SQLServer2017读取数据时遇到的问题:在更改过滤条件后,Excel无法响应并最终死锁。通过对比PowerQuery的功能,决定采用PowerQuery替代MicrosoftQuery,并详细介绍了实施步骤。
最低0.47元/天 解锁文章
1221





