當前位置:首頁 » 編程軟體 » dao編程

dao編程

發布時間: 2024-05-13 00:18:59

A. 在Visual Basic中用DAO實現資料庫編程

DAO(DataAccessObject)全稱為數據訪問對象 它是資料庫編程的重要方法之一 DAO的一種面向對象的界面介面 特色為它不是可視化的對象 使用它全部都要靠編碼來完成 DAO是設計關系型資料庫系悔磨槐統結構的對象類的集合 它提供了完成管理這樣一個系統所需游舉的全部操作的屬性和方法 包括創建資料庫 定義表 欄位和碧友索引 建立表間的關系 定位和查詢資料庫等工具 由於ADO(ActiveXDataObjectActiveX數據對象)的出現 DAO的使用已大大減少 但它無須使用ODBC(開放資料庫連接)便可連接各個數據源 因而我們仍經常用經典的DAO 下面我向大家詳細介紹如何使用DAO編程

DAO使用之前必須先引用 方法為打開VB 從VB的 工程 菜單中 選擇 引用 項 當 引用 對話框出現後 從庫的列表中 選擇 MicrosoftDAO ObjectLibrary 單擊 確定 現在便可以使用DAO對象庫提供的所有對象進行編程了

一 創建資料庫

在DAO中用CreatDataBase方法可以根據用戶需求動態的創建資料庫 這一點在程序中是非常有用的 用戶可以根據要求實時建立資料庫 建立過程如下

PrivateSubCom_creat_Click()

OnErrorGoToErr

CreatDataBase 資料庫名稱 mdb dbLangGeneral

Msgbox 資料庫建立完畢

ExitSub

Err :

MsgBox 不能建立資料庫! &vbCrLf&vbCrLf&Err Description vbInformation

EndSub

這樣 資料庫便在當前默認的路徑下建立了

二 創建表與欄位

建立資料庫後 則需要在該資料庫中建立表 這要用到TableDef對象 先定義一個TableDef類型的對象 然後用TableDef集合中Append方法將之追加到資料庫當中去 並且同時定義一個Field對象 用CreatFiele的方法創建一個Field對象 向表中添加欄位 例如:

PrivateSubCom_table_Click()

OnErrorGoToErr

DimDefdbAsDataBase

DimNewTableAsTableDef

DimNewFieldAsField

SetDefdb=Workspaces( ) OpenDatabase(App path& 資料庫名稱 mdb False)

SetNewTable=DefDataBase CreateTableDef( 表名 )

SetNewField=DefTable CreateField( 欄位名 dBText )′創建一個字元型的欄位 長度為 個字元

DefTableFields AppendNewField′欄位追加

DefDatabase TableDefs AppendNewTable′表追加

Msgbox 表建立完畢

ExitSub

Err :

MsgBox 對不起 不能建立表 請先再建表前建立資料庫? vbCritical

EndSub

一個資料庫可能有十幾個甚至幾十個欄位 一個表中有多少個欄位 則要創建多少次並要追加到表中 每建立一個欄位後都要用到欄位追加命令 但是表追加只需在所有欄位建立完成後用一條命令即可完成

三 打開資料庫

在VB中 對一個對象變數引用之前必須加以說明 DAO也是如此 必須先聲明資料庫變數 例如 DimdbaseAsDatabase 建立了資料庫對象變數後 我們便可打開資料庫了 在一般情況下都只是訪問一個資料庫 當打開資料庫後再對資料庫中的各個記錄進行操作 這就要用到Recordset對象建立記錄集 例如

PrivateSubCommand_OpenDatabase_Click()

DimdbaseasDatabase

DimrsAsRecordset

Setdbase=OpenDatabase(App path& 資料庫名稱 mdb )

Setrs=dbase OpenRecordset( select*from表名 )

EndSub

這樣 資料庫中的記錄便放到Recordset中 可以進行後續操作了

四 使用資料庫

當打開資料庫 建立Recordset記錄集後 便可瀏覽 刪除 添加 查找資料庫中的內容

)向前瀏覽

PrivateSubcmd_previous_Click()

rs MovePrevious

ifrs BOF=Truethen

rs Movelast

Endif

fori= to

label(i) caption=rs F

)向後瀏覽

PrivateSubcmd_next_Click()

rs MoveNext

Ifrs EOF=Truethen

rs MoveFirst

Endif

fori= to

label(i) caption=rs Fields(i)&

next

EndSub

)刪除記錄

PrivateSubcmd_del_Click()

OnErrorGoTohandle

Dimmsgasstring

msg= 是否要刪除記錄 &Chr$( )

msg=msg&label( )′把刪除記錄的代號加入msg中

IfMsgbox(msg 刪除記錄 )<> ThenExitsub

rs delete

rs Movenext

Ifrs EOF=TrueThen

rs MovePrevious

Endif

fori= to

label(i) caption=rs Fields(i)&

next

handle:

MsgBox 該記錄無法刪除!!!

ExitSub

EndSub

)添加記錄

向資料庫中添加記錄比較麻煩一點 大致分為三步 首先 用AddNew方法向資料庫添加一個新的空白記錄 其次 將要輸入的數據分別賦到資料庫的各個欄位中 最後 用Updata的方法 把記錄寫到資料庫中去 例如

PrivateSubcmd_new_Click()

rs AddNew

Fori= to

rs Fields(i)=TextBox(i) Text

Next

rs Updata

EndSub

)查找記錄

查找記錄可以用Find方法 例如

PrivateSubCmd_search_Click()

Setrs=dbase openRecordset( 表名 dbopenDynaset)

rs findfirst 欄位名= &Text Text& ′Text Text是輸入的關鍵字

ifrs Nomatch=Truethen

Msgbox 對不起 沒有該記錄

else

Fori= to

label(i) caption=rs Fields(i)&

Next

Endif

rs close

EndSub

以上只是大致介紹了DAO的一些最常用 最典型的用法 真正要熟練掌握它需要不懈的努力 當你很好的理解了DAO後 對學習新的RDO和ADO也有很大的幫助 並且DAO和ADO可以同時使用 DAO的缺陷在於查找功能不強 沒有ADO方便 但動態創建資料庫卻遠超ADO 因此有時二者結合更強大 我們相信DAO一定會幫你節約寶貴時間 為工作提供方便

lishixin/Article/program/c/201404/30446

熱點內容
信用卡一般的原始密碼是多少 發布:2024-11-27 10:28:32 瀏覽:991
安卓的程序結構是什麼 發布:2024-11-27 10:28:29 瀏覽:269
住房貸款還完了如何解壓 發布:2024-11-27 10:28:27 瀏覽:576
手動上傳發票 發布:2024-11-27 10:23:26 瀏覽:990
我的世界寬頻能開伺服器嗎 發布:2024-11-27 10:23:21 瀏覽:876
移動存儲器是什麼 發布:2024-11-27 10:04:08 瀏覽:876
linux重裝linux 發布:2024-11-27 09:46:25 瀏覽:558
電腦玩雲伺服器 發布:2024-11-27 09:19:22 瀏覽:66
蘋果什麼助手能和安卓互通 發布:2024-11-27 09:18:47 瀏覽:58
android花屏 發布:2024-11-27 09:18:38 瀏覽:125