IT教程 | 加入收藏 | 简体 | 繁体
Access教程:MySQL教程SQL Server...Oracle教程DB2教程Sybase教程Access教程
当前位置: 首页 > 数据库 > Access教程

Access学习_用ACCESS的视图导数据到EXCEL

2012-02-20来源:[www.121ask.com]热度:0℃ 【字体:

access中导数据到Excel高效的方法,借鉴了网上的一种导表的方法,

尝试了下用视图也是可以的:

但这种方法有缺陷的地方是可能弹出两个对话框,

一个是在access有密码的情况下,弹出让输入密码的对话框

另一个是安全对话框,这个要改变access的宏安全级别到低才不弹出

改变宏安全级别可以在access中手工设置,用程序设置的要修改注册表

感觉都不是很好解决办法,但偶也没有想出更好的办法。

在假设已经设置了宏安全级别的情况下,导出实现修正如下:

view plaincopy to clipboardPRint?
Access.applicationClass oAccess = new Access.ApplicationClass();   
oAccess.Visible = false;   
// 没有密码,可以设置成空   
string sDBPassWord = "MyPassword"; //database password   
DAO._DBEngine oDBEngine = oAccess.DBEngine;   
DAO.Database oDB = oDBEngine.OpenDatabase("c:\\mydb.mdb",   
   false, false, ";PWD=" + sDBPassword);   
oAccess.OpenCurrentDatabase("d:\\test.mdb",false,"");   
oDB.Close();   
System.Runtime.InteropServices.Marshal.ReleaseComObject(oDB);   
oDB = null;   
System.Runtime.InteropServices.Marshal.ReleaseComObject(oDBEngine);   
oDBEngine = null;   
oAccess.DoCmd.TransferSpreadsheet(Access.AcDataTransferType.acExport,   
Access.AcSpreadSheetType.acSpreadsheetTypeExcel9,   
"testview", "d:\\testexport.xls", true, null, null);  
Access.ApplicationClass oAccess = new Access.ApplicationClass();
oAccess.Visible = false;
// 没有密码,可以设置成空
string sDBPassword = "MyPassword"; //database password
DAO._DBEngine oDBEngine = oAccess.DBEngine;
DAO.Database oDB = oDBEngine.OpenDatabase("c:\\mydb.mdb",
   false, false, ";PWD=" + sDBPassword);
oAccess.OpenCurrentDatabase("d:\\test.mdb",false,"");
oDB.Close();
System.Runtime.InteropServices.Marshal.ReleaseComObject(oDB);
oDB = null;
System.Runtime.InteropServices.Marshal.ReleaseComObject(oDBEngine);
oDBEngine = null;
oAccess.DoCmd.TransferSpreadsheet(Access.AcDataTransferType.acExport,
Access.AcSpreadSheetType.acSpreadsheetTypeExcel9,
"testview", "d:\\testexport.xls", true, null, null); 

当然,要用access组件,要把access的COM组件引用到工程里,

我一般习惯的做法是先把COM引用添加上去,编译一下,引用的程序集包容器就出现在bin下了,

然后把这个dll文件备份一下,工程里可以把COM引用去掉,直接引用这几个dll就行了,

这样整个工程文件可以任意拷贝到其他机器上。

这种方法导access效率的确是比较快的,毕竟是交给window OS来做的

但应用局限性还是比较明显的,我推荐用OLEDB 连接access查询,在结合

http://blog.csdn.net/linaren/archive/2009/10/28/4736637.aspx

这个上面的方法,是不错的选择,效率稍显慢些,但灵活性比较大。
以上IT文章《Access学习_用ACCESS的视图导数据到EXCEL》由名客技术网[www.121ask.com]提供阅读!
名客技术网是一个免费为广大IT技术人员提供IT教程,绿色软件,asp/php/jsp/java/net等实例视频教程,CMS教程,破解软件下载以及学习相关源码、知识的IT网站。
名客技术网如果无意之中侵犯了您的版权,请来电告知,本站将在3个工作日内删除 QQ:175352796
Copyright 2011-2017 Powered by 121ASK.COM, All Rights Reserved.
备案号:鄂ICP备11013833号-3