电脑软硬件应用网
当前位置: 电脑软硬件应用网 > 电脑学院 > 办公软件 > Excel > 正文
用ACCESS的视图导数据到EXCEL
用ACCESS的视图导数据到EXCEL
2010-6-10 8:06:04  文/网络收集   出处:电脑软硬件应用网   

从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这个上面的方法,是不错的选择,效率稍显慢些,但灵活性比较大。

  • 上一篇文章:

  • 下一篇文章:
  • 最新热点 最新推荐 相关文章
    常出现的Office EXcel数值显示错误的…
    无法找到所要的Office命令怎么办?
    Excel考试辅导:分类汇总表的建立和…
    Excel超级实用技巧12则
    EXCEL中随机提取不重复的不含0数据
    Excel单元格为何文字显示不全
    在Excel中为中文添加拼音
    Excel技巧系列之Excel提速12招
    为Excel的工具栏添加计算器功能按钮
    在Excel表格中鲜为人知的照相机功能
    关于45IT | About 45IT | 联系方式 | 版权声明 | 网站导航 |

    Copyright © 2003-2011 45IT. All Rights Reserved 浙ICP备09049068号