VB 資料匯出

2021-05-22 15:47:03 字數 4697 閱讀 7646

在很多 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,乙...