ACCESS VBA匯出資料庫表到XLS檔案

2021-10-05 12:28:13 字數 1639 閱讀 4232

目錄

1. 前言

2. 相關知識

2.1 匯出資料到**查詢**

2.2 adox.catalog

2.3 系統表

3. 原始碼解析

本例簡析通過access vba查詢語句匯出所有資料庫表到xls檔案。

有四種方法,可選其中一種。其中d:\test.xls表示匯出到d盤,命名為test.xls;  sheet1是工作表的名字;表名,是資料庫對應的表。

docmd.runsql "select * into [excel 8.0;database=d:\test.xls].[sheet1] from 表名"

docmd.runsql "select * into [sheet1] in 'd:\test.xls'[excel 8.0;] from 表名"

docmd.runsql "select * into [sheet1] in 'd:\test.xls' 'excel 8.0;' from 表名"

docmd.runsql "select * into [sheet1] in 'd:\test.xls' 'excel 8.0;' from 表名"

adox屬於ado擴充套件庫,所以引用時,需在vba選單欄的【工具】->【引用】裡勾選microsoft ado類庫;

catalog是adox的乙個物件,用來描述資料來源模式目錄的。

系統表由系統自動建立,包含了資料庫物件的相關資訊,都是以msys開頭。

private sub transxlsschema()

databasename = "d:\test.mdb" '要操作的資料庫

exportpath = "d:\test.xls" '輸出的**名稱

docmd.setwarnings false '去除所有的系統提示

dim mycat as new adox.catalog '創新新物件

mycat.activeconnection = "provider=microsoft.jet.oledb.4.0;data source=" & databasename '連線資料庫

for i = 0 to mycat.tables.count - 1 '遍歷表

itemname = mycat.tables.item(i).name

if instr(itemname, "msys") = 0 then '這裡的目的,是去除所有自動建立的系統表的干擾

debug.print "[db table]:" & itemname

docmd.runsql "select * into [" & itemname & "] in '" & exportpath & "'[excel 8.0;] from " & itemname '查詢**執行

else

debug.print "[sysrem table]:" & itemname

end if

next

mycat.activeconnection = nothing '斷開連線

msgbox "程式執行完畢!"

end sub

資料匯出Excel表 資料庫資料匯出

public static hashmapcolumn new hashmap static param table 要匯出的表 param name 匯出的excel表名稱 表頭 throws exception public void createexcel string table,strin...

oracle資料庫匯出表

1 exp username password rows n indexes n compress n buffer 65536 feedback 100000 owner username file d username date dmp 2 exp username password rows ...

mysql mysqldump 匯出資料庫表

1.mysqldump的幾種常用方法 1 匯出整個資料庫 包括資料庫中的資料 mysqldump u username p dbname dbname.sql 2 匯出資料庫結構 不含資料 mysqldump u username p d dbname dbname.sql 3 匯出資料庫中的某張資...