VB通過(guò)DAO訪問(wèn)Access數(shù)據(jù)庫(kù)發(fā)布時(shí)間:2008-04-03 10:45:26 來(lái)源:編程愛(ài)好者網(wǎng)站 作者:編程愛(ài)好者網(wǎng)站 點(diǎn)擊:450 文/張喜瑞、毛立夏
Access是Office系列中功能完備的數(shù)據(jù)工具,本文將其作為應(yīng)用程序的后臺(tái)倉(cāng)庫(kù),即一個(gè)數(shù)據(jù)庫(kù)可以包括多個(gè)二維表,實(shí)現(xiàn)各類數(shù)據(jù)的存儲(chǔ),適合用來(lái)作為數(shù)據(jù)處理的中間橋梁。 Visual Basic對(duì)Access數(shù)據(jù)庫(kù)的集成非常緊密,通常由以下幾個(gè)部分組成。 引用DAO類型庫(kù) 1、從“工程”菜單中選擇“引用”菜單項(xiàng); 2、在可引用列表框中選擇“Microsoft DAO 3.51 Object Library”項(xiàng)。 3、最后“確定”即可 設(shè)置DAO數(shù)據(jù)類型變量 DAO數(shù)據(jù)類型變量共分成兩種: 1、Database變量 對(duì)應(yīng)于Access數(shù)據(jù)庫(kù),通常在模塊中被定義為Public全程變量: Public AccessDBF As Database ’定義數(shù)據(jù)庫(kù)對(duì)象實(shí)例AccessDBF 2、RecordSet變量 對(duì)應(yīng)于Access數(shù)據(jù)庫(kù)中的一個(gè)表,可定義為全程變量或局部變量,亦可作為函數(shù)參數(shù)進(jìn)行傳遞: Dim thePrintTable As RecordSet ’定義一個(gè)表對(duì)象實(shí)例thePrintTable 打開(kāi)DAO數(shù)據(jù)類型 1、打開(kāi)Access的方法 通??稍O(shè)置一個(gè)專門(mén)的Public函數(shù)用來(lái)打開(kāi)一個(gè)Access數(shù)據(jù)庫(kù),并且該函數(shù)在啟動(dòng)窗體的Private Sub Form_load ( )過(guò)程中被調(diào)用,函數(shù)定義格式如下: Public Sub OpenDatabase ( ) Dim sConeect As String SConnect = ";PWD = 8830428; UID = admin " ’設(shè)置打開(kāi)時(shí)的用戶名、口令等參數(shù) Set AccessDBF = Nothing ’確認(rèn)關(guān)閉對(duì)象實(shí)例 Set AccessDBF = WorksPaces (0 ).OpenDatabase (App.Path&&"/ToXls.MDB",False,sConnect) ’打開(kāi)當(dāng)前路徑的ToXls.MDB數(shù)據(jù)庫(kù) End Sub 2、打開(kāi)RecordSet的方法 RecordSet遵循即用即開(kāi)的原則,所以它通常在函數(shù)中打開(kāi) Set thePrintTable = AcessDBF.OpenRecordSet ( "Table_1",dbOpenSnapshot ) 相關(guān)的數(shù)據(jù)操作 數(shù)據(jù)實(shí)際需要對(duì)Access表中的記錄、字段、數(shù)據(jù)項(xiàng)進(jìn)行操作。下列雙重循環(huán)把數(shù)據(jù)輸出到Excel對(duì)應(yīng)的單元格中: For j = 0 To 2 For I = 0 To 3 ThePrintTable.MoveNext Excel.Sheet.Range ( Trim ( chr ( 71+j*10+I ) )+"G").Value = thePrintTable.Fields (0) Next I Next j 關(guān)閉數(shù)據(jù)庫(kù) 1、關(guān)閉Database 它通常在整個(gè)應(yīng)用程序的最后進(jìn)行操作,即通常出現(xiàn)在Private Sub Form_unload (Cannel As Interger )過(guò)程中。命令格式實(shí)例如下: AccessDBF.Close 2、關(guān)閉RecordSet 它遵循用完即關(guān)的原則,所以通常出現(xiàn)在函數(shù)中。當(dāng)完成了相關(guān)的數(shù)據(jù)操作后就關(guān)閉它,下次再用時(shí)再打開(kāi)即可: thePrintTable.Close 結(jié)論:通過(guò)系統(tǒng)集成開(kāi)發(fā)應(yīng)用程序的輸入和輸出模塊,它一方面充分利用了OLE對(duì)象程序的優(yōu)點(diǎn),輕松完成人機(jī)界面設(shè)計(jì),使程序員從繁瑣而又簡(jiǎn)單的點(diǎn)、線、框等定位中脫離出來(lái);另一方面,由于充分利用了用戶操作熟練的軟件作為人機(jī)界面,使用戶有親切感和熟練操作的能力,從而能夠充分發(fā)揮所開(kāi)發(fā)的應(yīng)用程序的功能。 |
|
|