Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-查询/SQL语句

[access查询]用SQL语句对mdb表进行导出到Excel

时 间:2009-07-07 16:38:49
作 者:yehf   ID:31  城市:广州
摘 要:用SQL语句对mdb表进行导出到Excel
正 文:

追加查询
Insert INTO [excel 8.0;database=c:\a.xls].[sheet1$] Select * FROM Sm;
这个追加是在指定表的最后一条记录进行追加的,缺陷是一定要有列标题,而且列标题要与mdb表的字段名一致.假如有N个mdb数据要导出到一个excel,通常是先打开一个excel,然后分别进行导出,过程中要加入usedrange或其他方法来判断最后的行位置,而用这个语句就省去这个麻烦了.

生成表查询
Select Sm.ID, Sm.字段1 INTO [excel 8.0;database=c:\a.xls].[sheet2] FROM Sm;
这里的表名不需要加"$"附号,而且表名已有的话,会有提示.另外感觉这个sql语句的速度比tranferspreadsheet,OutPutTo的速度要快,而且可以指定生成工作表的名称.与CopyFromRecordSet速度相当,但优点在于自动生成列标题,而CopyFromRecordSet不能.
基于以上两点理由,觉得应该用这个语句来代替以往所有的导出的方法.

经准确测试,3.3万条记录,用sql语句与copyfromrecordset执行时间都是2秒,而tranferspreadsheet要4秒,outputto超出行数,报错.
copyfromrecordset需要起码7行代码,而且没有列标题,如果是用copyfromrecordset追加到指定的单元格,可以用追加查询代替,如果是新表,就用生成表查询代替.

至于删除查询,提示ISAM不支持.



Access软件网QQ交流群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助