access查询结果导出excel ,但是数据太大300多万个记录,装不下。怎么办?
展开全部
excel2003版本最大行65536;2007版最大行1048576。都比300万小,所以导出记录到同一个工作表是不可能的。只能分段导出,例如sheet1是2010年的记录,sheet2是2011年的记录,导多几个工作表就可以了。
但是,其实楼上说得对,excel在处理大量数据方面并不优秀,建议还是在access中操作。
但是,其实楼上说得对,excel在处理大量数据方面并不优秀,建议还是在access中操作。
更多追问追答
追问
谢谢,请问,access导出文件时候,有没有必要保存“导出步骤“,如果钩选这一项的话会占用内存吗?另外还有一个问题:access数据方多了,运行起来特别慢,怎样提高access 运行速度,特别在运行查询的时候,一般要等半个小时才能运行出结果。还有运行查询生成的查询表,以后没有用了,可以直接删除,就真的删除了,内存就会降低了吧。
追答
一下子多了这么多问题。不过,都是些常见和我以前解答过的问题。
1、保存步骤,我没有操作过,但估计作用不大。因为我很多是导出1次就不再导出,如果重复导出,就用vb语句+sql语句进行导出。详见我以前的回答http://zhidao.baidu.com/question/141726000.html?oldq=1
2、Access是小型数据库,也有它的极限,首先是不能超过2G。我测试过,1G左右就很慢了。但是,除了数据太多的原因,影响速度的还有就是查询是否优化。我曾经见过一位兄台,做了3个重复引用的查询,一个窗体做了多次引用某个表格的列表框,当然慢了。我估计,使用数据库慢了,有2个可能原因
①查询引用同一个表次数太多。
当数据量不是很大的时候,同一个数据表引用多次后,查询的效率就是这个表的记录数的引用数 乘方。
当表的数据上十万条,这样引用多次,效率就可想而知。
解决方法:设立临时表,分步查询,每个查询只对这个表引用一次。
②子窗体引用太多。
子窗体的数据源因为是查询的,所以可相当于同时引用了多个查询和表。原理跟上边一样,不啰嗦了。
解决方法:
a、减少子窗体的引用,可以用弹出的方式,不用的窗体就不要一开始加载进来,用到那个才弹出那个。
b、如果还是希望主窗体加载的时候就引用子窗体,可以将子窗体的数据源设置为空,真正加载的时候,才将数据源设为“××子窗体”,这样每次加载的只是一个没有源的控件,速度就会提升了。
补充一下,设立临时表,是指针对输出窗体的临时表,可能只需要几十条记录,就是用更新查询的方法不断将重复运算的数据写到这个临时表。
再解释一下。弹出的方式,不是指窗体的属性改成弹出,而是说按钮摁下,才启用 docmd.open命令,平常这个子窗体是关闭的。
3、查询生成的表的问题。我一般对于保存中间计算过程的表,在运算最后都会清空该表,而不是删除该表,只要表的数据没有了,就不占空间,不会对2G极限产生威胁。
展开全部
你可以试试以下方法:
用Excel2010 打开access保存的数据库文件,打开时会提示你要打开的表或者查询,选择你的查询,等待,然后再保存为Excel格式的即可。
用Excel2010 打开access保存的数据库文件,打开时会提示你要打开的表或者查询,选择你的查询,等待,然后再保存为Excel格式的即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样的情况只能在ACCESS数据库中操作。没有别的办法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询