在很多 vb 的資料庫書籍中,都會很完整的提到:如何由其他種類的檔案中將資料匯入資料庫,但是卻很少有書提到:如何將資料庫中的資料,匯出到各種不同的檔案型別的檔案中,連 vb 的 help 中也是這樣!
或許是大家都認為資料庫主題的重點是在資料庫本身吧!
但是,在實際的資料庫程式運用中,卻常常需要將資料庫匯出到各種不同的檔案型別的檔案中,這些檔案可能是 dbase檔案、文字檔案 (.txt)、excel 檔案、html 檔案、access 檔案或其他型別的資料庫檔案 (odbc)...等。
在本專題中,考慮到並不是每乙個人都有 oracle 或 sql server 的環境,為了讓大家都能夠實作,我們將以 access 資料庫來作練習,而練習的檔案也使用 vb 本身提供的 biblio.mdb (位於各版本 vb 的目錄下)。
預計要練習匯出的檔案型別有五種:dbase檔案、文字檔案 (.txt)、html 檔案、excel 檔案、access 檔案。除了這五種之外,下面的語法可以將資料庫之資料匯出到任一種 vb 支援的資料庫或檔案中。
在練習之前,要將匯出檔案的 sql 語法先說明一下:
select table.fields into [dbms type;database=path].[unqualified filename] from [table or tables]
select table.fields into [資料庫種類;database=資料庫路徑].[資料庫檔名稱] from [table or tables]
至於【資料庫種類】及【資料庫路徑】,視資料庫或檔案型別之不同而異,詳見【註一】。
如果上面說的都清楚了,那我們要開始這乙個練習了!
在 form 上放置乙個 commandbutton,在【專案】【設定引用專案】中加入 microsoft dao 3.51 object library,我們將使用 biblio.mdb 的 authors table,在 command1_click 中加入以下程式碼:
在以上程式中,db.execute 指令行之指令依資料庫或檔案的種類說明如下:
一、dbase檔案
sql 語法:select * into [dbase iii;database=資料庫路徑].[dbase檔名稱] from [authors]
db.execute "select * into [dbase iii;database=c:/test].[authors.dbf] from [authors]"
注意事項:
1、authors.dbf 事先不可存在,否則會產生錯誤!
2、若您沒有 dbase,您可以使用 access 來鏈結這個 table,以便觀察結果!
二、文字檔案 (.txt)
sql 語法:select * into [text;database=文字檔案路徑].[文字檔案名稱] from [authors]
db.execute "select * into [text;database=c:/test].[authors.txt] from [authors]"
注意事項:
1、authors.txt 事先不可存在,否則會產生錯誤!
2、此動作會產生的檔案有二個,第乙個就是文字檔案 authors.txt,第二個是 schema.ini。
3、文字檔案之格式為 csv 之檔案格式,即各字段間以逗點分開,實際呈現方式如下:
"au_id","author","year born"
1,"jacobs, russell",1950
2,"metzger, philip w.",1942
[authors.txt]
colnameheader=true
characterset=oem
format=csvdelimited
col1=au_id integer
col2=author char width 50
col3="year born" short
三、html 檔案
[authors.htm]
colnameheader=true
characterset=ansi
format=html
col1=au_id integer
col2=author char width 50
col3="year born" short
四、excel 檔案
sql 語法:select * into [excel 8.0;database=檔案路徑+檔名].[工作表名稱] from [authors]
db.execute "select * into [excel 8.0;database=c:/test/authors.xls].[authors] from [authors]"
注意事項:
1、authors.xls 可事先存在,也可以不存在,會自動產生乙個。
2、工作表 authors 事先不可存在,否則會產生錯誤!
五、access 檔案
sql 語法:select * into [新資料庫路徑+檔名][新資料表名稱] from [authors]
'匯出到同一資料庫 ( 新 table 為 authors1 )
'新 table authors1 事先不可存在,否則會產生錯誤!
db.execute "select * into [authors1] from [authors]"
'匯出到不同的資料庫 ( 新資料庫為 db1,新 table 為 authors )
'新資料庫 db1事先必須存在,否則會產生錯誤!
'但是其中新 table authors 事先不可存在,否則會產生錯誤!
db.execute "select * into [c:/test/db1.mdb].[authors] from [authors]"
註一:各種可能的資料庫種類 connect 屬性設定方式:
資料庫種類
資料庫宣告方式
資料庫路徑 (或加上檔名)
microsoft jet database
[database];
drive:/path/filename.mdb
dbase iii
dbase iii;
drive:/path
dbase iv
dbase iv;
drive:/path
dbase 5
dbase 5.0;
drive:/path
paradox 3.x
paradox 3.x;
drive:/path
paradox 4.x
paradox 4.x;
drive:/path
paradox 5.x
paradox 5.x;
drive:/path
microsoft foxpro 2.0
foxpro 2.0;
drive:/path
microsoft foxpro 2.5
foxpro 2.5;
drive:/path
microsoft foxpro 2.6
foxpro 2.6;
drive:/path
microsoft visual foxpro 3.0
foxpro 3.0;
drive:/path
microsoft excel 3.0
excel 3.0;
drive:/path/filename.xls
microsoft excel 4.0
excel 4.0;
drive:/path/filename.xls
microsoft excel 5.0 or microsoft excel 95
excel 5.0;
drive:/path/filename.xls
microsoft excel 97
excel 8.0;
drive:/path/filename.xls
lotus 1-2-3 wks and wk1
lotus wk1;
drive:/path/filename.wk1
lotus 1-2-3 wk3
lotus wk3;
drive:/path/filename.wk3
lotus 1-2-3 wk4
lotus wk4;
drive:/path/filename.wk4
html import
html import;
drive:/path/filename
html export
html export;
drive:/path
text
text;
drive:/path
odbc
odbc;
database=database;
uid=user;
pwd=password;
dsn= datasourcename;
[logintimeout=seconds;]
none
microsoft exchange
exchange 4.0;
mapilevel=folderpath; [tabletype=];[profile=profile;]
[pwd=password;]
[database=database;]
drive:/path/filename.mdb
VB快速匯出資料庫資料
快速匯出 親愛的讀者您好我是阿姜這裡記錄了我在開發過程中的經驗總結,在用vb開發的過程中我們總是發現資料很少,但不得不說vb6.0這個語言編輯器除了不能滾動和不能儲存比較坑以外其他的都還ok。接下來我分享一下我匯出資料庫到excel的心得。在選單欄的 工程 選項下再選擇 引用 找到 microsof...
vb匯出到excel的方法
匯出 private sub command5 click if adodc2.recordset.recordcount 0 then msgbox 沒有資料可匯出!vbexclamation,匯出 else msgbox 將把資料匯出到excle裡,請稍等.vbexclamation,匯出 sc...
如何使用VB呼叫DTS進行資料的匯入 匯出
當我們想把sql中的資料匯出到其他的資料來源,或者從其他的資料來源中匯入到sql資料庫或表中時,一般都是用一些sql語句或工具控制項來實現,但在資料量很大或者對sql不太熟悉時,應該如何去做,有乙個比較簡單的方法 1.利用sql2000中的dts功能,先設定好匯入匯出的資料來源 比如乙個是sql,乙...