用ACCESS的視圖導數據到EXCEL請仔細查看哦

【用ACCESS的視圖導數據到EXCEL請仔細查看哦】從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這個上面的方法, 是不錯的選擇, 效率稍顯慢些, 但靈活性比較大 。

    推薦閱讀