資源描述:
《在VB中用DAO實現(xiàn)數(shù)據(jù)庫編程》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、在VB中用DAO實現(xiàn)數(shù)據(jù)庫編程DAO(DataAccessObject)全稱為數(shù)據(jù)訪問對象,它是數(shù)據(jù)庫編程的重要方法之一。DAO的一種面向?qū)ο蟮慕缑娼涌?特色為它不是可視化的對象,使用它全部都要靠編碼來完成,DAO是設(shè)計關(guān)系型數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)的對象類的集合。它提供了完成管理這樣一個系統(tǒng)所需的全部操作的屬性和方法,包括創(chuàng)建數(shù)據(jù)庫,定義表、字段和索引,建立表間的關(guān)系,定位和查詢數(shù)據(jù)庫等工具。由于ADO(ActiveXDataObjectActiveX數(shù)據(jù)對象)的出現(xiàn),DAO的使用已大大減少,但它無須使用ODBC(開放數(shù)據(jù)庫連接)便可連接各個數(shù)據(jù)源,因而我們?nèi)越?jīng)常用經(jīng)典的DAO。下面我向
2、大家詳細介紹如何使用DAO編程?! AO使用之前必須先引用。方法為打開VB6.0,從VB的"工程"菜單中,選擇"引用"項,當(dāng)"引用"對話框出現(xiàn)后,從庫的列表中,選擇"MicrosoftDAO3.51ObjectLibrary",單擊"確定"?,F(xiàn)在便可以使用DAO對象庫提供的所有對象進行編程了?! ∫弧?chuàng)建數(shù)據(jù)庫: 在DAO中用CreatDataBase方法可以根據(jù)用戶需求動態(tài)的創(chuàng)建數(shù)據(jù)庫。這一點在程序中是非常有用的。用戶可以根據(jù)要求實時建立數(shù)據(jù)庫。建立過程如下:PrivateSubCom_creat_Click()OnErrorGoToErr100CreatDataBase"
3、數(shù)據(jù)庫名稱.mdb",dbLangGeneralMsgbox"數(shù)據(jù)庫建立完畢"ExitSubErr100:MsgBox"不能建立數(shù)據(jù)庫!"&vbCrLf&vbCrLf&Err.Description,vbInformationEndSub 這樣,數(shù)據(jù)庫便在當(dāng)前默認的路徑下建立了。 二、創(chuàng)建表與字段: 建立數(shù)據(jù)庫后,則需要在該數(shù)據(jù)庫中建立表,這要用到TableDef對象。先定義一個TableDef類型的對象,然后用TableDef集合中Append方法將之追加到數(shù)據(jù)庫當(dāng)中去。并且同時定義一個Field對象,用CreatFiele的方法創(chuàng)建一個Field對象,向表中添加字段。例
4、如:PrivateSubCom_table_Click()OnErrorGoToErr100DimDefdbAsDataBaseDimNewTableAsTableDefDimNewFieldAsFieldSetDefdb=Workspaces(0).OpenDatabase(App.path&"數(shù)據(jù)庫名稱.mdb",0,False)SetNewTable=DefDataBase.CreateTableDef("表名")SetNewField=DefTable.CreateField("字段名",dbText,6)′創(chuàng)建一個字符型的字段,長度為6個字符DefTableFields
5、.AppendNewField′字段追加DefDatabase.TableDefs.AppendNewTable′表追加Msgbox"表建立完畢"ExitSubErr100:MsgBox"對不起,不能建立表。請先再建表前建立數(shù)據(jù)庫?",vbCriticalEndSub 一個數(shù)據(jù)庫可能有十幾個甚至幾十個字段,一個表中有多少個字段,則要創(chuàng)建多少次并要追加到表中。每建立一個字段后都要用到字段追加命令,但是表追加只需在所有字段建立完成后用一條命令即可完成。 在VB中,對一個對象變量引用之前必須加以說明。DAO也是如此,必須先聲明數(shù)據(jù)庫變量,例如:DimdbaseAsDatabase。
6、建立了數(shù)據(jù)庫對象變量后,我們便可打開數(shù)據(jù)庫了,在一般情況下都只是訪問一個數(shù)據(jù)庫,當(dāng)打開數(shù)據(jù)庫后再對數(shù)據(jù)庫中的各個記錄進行操作,這就要用到Recordset對象建立記錄集。例如:PrivateSubCommand_OpenDatabase_Click()DimdbaseasDatabaseDimrsAsRecordsetSetdbase=OpenDatabase(App.path&"數(shù)據(jù)庫名稱.mdb")Setrs=dbase.OpenRecordset("select*from表名")EndSub 這樣,數(shù)據(jù)庫中的記錄便放到Recordset中,可以進行后續(xù)操作了?! ∷?、使用
7、數(shù)據(jù)庫: 當(dāng)打開數(shù)據(jù)庫,建立Recordset記錄集后,便可瀏覽、刪除、添加、查找數(shù)據(jù)庫中的內(nèi)容?! ?)向前瀏覽PrivateSubcmd_previous_Click()rs.MovePreviousifrs.BOF=Truethenrs.MovelastEndiffori=0to11label(i).caption=rs.Fields(i)&""nextEndSub 在字段賦值的末尾加上""可以避免許多不必要的錯誤,在數(shù)據(jù)庫中,當(dāng)一個字段為空的時候,它的值為Null,N