如何创build连接到仅下载查询数据的Access数据库的Excel数据透视表?

我有一个大约60列40万行的桌子,增加。 我们公司的笔记本电脑和MS Excel无法在RAM中处理这么多的数据。 所以我决定将数据存储在MS Access中并将其链接到Excel。

但是,Excel中的数据透视表仍将所有数据下载到Excel中, 然后对数据执行过滤和操作。 哪些工作与较less的数据,但更多的数据现在已经开始给内存错误。 即使数据透视中的数据可能只有50个单元格,文件大小也是30+ MB …

那么是否有可能创build一个连接到Access的方式,它只下载被查询的数据,做手动操作,然后将修改后的数据发送到Excel?

我在我以前的公司(在这种情况下,Excel数据透视表只会下载它所需要的)看到了这个设置。 但据我所知,它正在查询一个SQL DB。 (因为IT总监想要成为唯一一个了解核心业务的人(他基本上把公司的IT运营当作人质来换取他的工作安全),所以很遗憾不能了解到这一点)……但是我离题了。

我已经在网上search了几天,但这是一个非常具体的问题,我无法在Google中find:/

任何帮助,甚至指针将不胜感激!

编辑:我只想指出,我正在尝试创build一个OLAP连接进行分析,所以主键将改变字段。 我对pivot的工作原理的理解是,当我们selectpivot中的字段时,excel将devise一个查询(基于select字段)并将其发送到连接DB以检索请求的数据。 如果不是这种情况发生,我该如何做出这样的事情呢? 希望详细说明。

我想你在Access中创build了一个庞大的表来存储所有的数据,所以如果你只是把这个表作为数据源,那么Excel就不会知道哪个特定位的数据是相关的,而且很可能必须经历所有的数据它本身。

相反,您可以尝试不同方法的组合:

  • 创build一个查询,从Access中预过滤数据并将该查询链接到Excel。 使用SQL 命令types为您的连接属性而不是Table
    在Access中testing该查询以确保其运行良好并且速度足够快。

  • 确保所有重要的字段都有索引(过滤的字段,分组的字段,Excel必须经过的任何字段以决定是否应将其包含在数据透视表中,确保该字段具有合理的索引)。

  • 确保您在Access中的表中设置了一个主键。 如果尚未使用,请使用默认的自动增量ID

  • 如果所有其他的都失败了,那么分解那个巨大的表:不是那么多的logging太多,而是更多的列数。

  • 如果基于某些条件在数据透视表或filter数据中使用计算的字段,请考虑在包含预先计算的数据的Access中的表中添加列。 例如,您可以从Access运行查询来更新这些附加字段或添加一些VBA来做到这一点。

它应该工作得很好,为了给你一个想法,我已经做了一些testing与Excel 2013链接到一个250MB的ACCDB包含33个字段和392498行(库存操作日志):大多数操作在Excel数据透视只采取几分之一秒,也许几秒钟的数据密集型的。

另一件事:访问支持数据透视表和透视图 。 如果Access足够,也许你不需要Excel。 您可以在每台需要访问数据的机器上使用Access Runtime 2013或2013 (免费)作为前端。 然后可以将每个前端链接到保存networking共享数据的后端数据库。 这些工具比Excel更笨重,但工作起来。

为了避免在Access数据库中创build查询,另一种可能的解决scheme是在Excel中使用PowerPivot加载项,实现查询和规范化。