VB使用DAO控制ACCESS鏈結表

2022-02-09 18:58:54 字數 2867 閱讀 8871

在一家使用access開始程式的公司做專案,改進原系統成為支援barcode的物流系統.

他們使用程式和資料分離的方法,access的程式使用鏈結表指向原始表,就可以在程式中直接操作鏈結表就像操作本地表一樣.由於將資料部署在伺服器上做為生產資料庫,則除錯時將使用本地資料進行除錯,在程式中就要頻繁更改鏈結表的指向.以前他們都是手動進行修改很是忙煩,我看了下dao的資料就寫個小程式控制鏈結表.程式如下:

新增專案,引用dao3.

51,窗體上放三個textbox,兩個commandbutton,乙個commondialog,和乙個progressbar.編寫**如下:

option

explicit

private

subcmdbrowse_click(index 

asinteger

)me.commondialog1.showopen

ifme.commondialog1.filename 

<>

""then

me.txtpath(

0).text 

=me.commondialog1.filename

endif

end sub

private

subcmdexit_click()

unload me

end sub

private

subcmdprocess_click()

dimi 

aslong

, ok 

aslong

, linkcount 

aslong

fori =0

to2ifme.txtpath(i).text =""

then

msgbox

"請填寫所有路徑!

", vbokonly 

+vbinformation, "提示

"exit

subend

ifnext

dimdb 

asdatabase

setdb 

=dbengine.opendatabase(me.txtpath(

0).text)

dimt 

astabledef, s1 

asstring

, s2 

asstring

, s3 

asstring

me.progressbar1.max 

=db.tabledefs.count

me.progressbar1.value =0

foreach

t in db.tabledefs

me.progressbar1.value 

=me.progressbar1.value +1

ift.connect 

<>

""then

linkcount 

=linkcount +1

t.connect 

=replace

(t.connect, me.txtpath(

1).text, me.txtpath(

2).text)

dimfind 

aslong

find 

=instr(1

, t.connect, me.txtpath(

2).text)

onerror

resume

next

t.refreshlink

ifdao.errors.count 

<>

0then

fori =0

todao.errors.count -1

ifdao.errors(i).number ="

3011

"then

'在目標表中未找到此表

ifvbno 

=msgbox("

更改鏈結表時發生目標表鏈結錯誤:"&

vbcrlf &_

dao.errors(i).description, vbyesno 

+vbinformation 

+vbdefaultbutton2, "提示

") then

onerror

goto

errhandle:

err.raise vbobjecterror, me.name, 

"使用者中斷操作!

"end

ifelse

debug.print dao.errors(i).description

endif

next

dao.errors.refresh

else

iffind 

<>

0then

ok =

ok +

1end

ifend

ifend

ifnext

msgbox

"鏈結表重新整理完畢,資料庫中總計有:"&

_me.progressbar1.max &"

個資料表,其中鏈結表為:"&

linkcount &_

"個,成功匹配操作:"&

ok &

"個資料表.

", vbokonly 

+vbinformation, "提示

"exit

suberrhandle:

msgbox

err.number &"

,"&err.source &"

,"&err.description, vbcritical 

+vbokonly, "錯誤

"me.progressbar1.value =0

end sub

DAO讀寫ACCESS檔案

我在網上想尋找乙個使用 cdao 類來從資料表讀出或寫入資料資料,但是我沒有得到什麼線索。現在自己完成了這個功能,從乙個微軟的 access 檔案 mdb 檔案中快速 動態 簡便的建立 寫入 讀出資料 我們的例子是乙個基於對話方塊的程式。設計我們的介面 為了建立我們的資料庫介面,首先我們應該在工程的...

vc6 0使用DAO訪問access2000的問題

感覺dao已經是一種比較舊的資料庫技術,但我的乙個同學還在使用vc6.0跟mfc的dao類來操作access2000,並遇到了乙個問題,就是程式執行時提示說 無法識別資料庫格式 查了一下原因,應該是這樣的 vc6.0裡面的mfc預設使用的是dao3.5,而dao3.5使用的資料庫引擎是jet3.5,...

VB使用ADO操作Access資料庫

這裡只是個簡單不能再簡單的vb小程式例項,但它包含這幾個關鍵字 vb6.0 ado access 環境 visual basic 6.0 企業版 非精簡版,不然會缺少必須的控制項 資料庫 access資料庫,資料庫是xs.mbd,內建表為xj 結果 vb使用ado連線access資料庫,查詢xj表中...