在VB編程中通常要與數據庫打交道,對於數據量較小的應用,一般選用Access作為數據庫,因為Access數據庫比較簡單,功能也比較齊全,數據的備份、拷貝都很方便,且程序發布時不需要額外單獨安裝其它的數據庫管理軟件。因此,在功能能夠滿足要求的條件下,Access數據庫往往成為一些小型數據庫軟件的首選。
關於用VB操作Access庫表的方法有多種,一般初學者往往會使用數據控件,許多資料上也大都以此作為操作Access數據庫的起點來介紹,因為這個方法使用起來非常簡單,但使用數據控件的方法在程序編碼上往往不夠靈活。現在介紹一下其它兩種操作Access數據庫的方法。
第一種:使用數據庫對象
首先,要進行有關數據對象的聲明,代碼如下。
Dim MyWs As Workspace
Dim MyDB As Database
Dim wordTab As Recordset
生成工作區,打開數據庫,然後再根據需要打開相應的庫表。
Set MyWs = DBEngine.CreateWorkspace″″ ″Admin″ ″″ dbUseJet
Set MyDB = MyWs.OpenDatabase數據庫名稱 False False
Set wordTab = MyDB.OpenRecordset″表名″ dbOpenDynaset
這種方法的優點是代碼比較簡單,要求的環境為DAO 2.5/3.51,其中表名可以換成SELECT語句,即根據條件打開所需要的記錄集,這種方法可脫離數據控件,可以比較方便靈活地操作數據庫表,增加了程序的靈活性。
提示:經過測試發現,這種方法只能打開Access97庫表,對於Access2000庫表卻無能為力,會彈出庫表格式不對的出錯提示。另外,對數據環境的要求仍比較多。
第二種:使用ADODB
首先,聲明一個鏈接變量,並根據需要聲明記錄集變量。
Dim LocCnn1 As ADODB.Connection
Dim LocRst1 As ADODB.Recordset
建立與數據庫的鏈接,如果數據庫沒有口令,最後一行可以不寫(寫上也不會錯)。
Set LocCnn1 = New ADODB.Connection
LocCnn1.Open ″Provider=Microsoft.Jet.OLEDB.4.0User ID=Admin″ & _
″Data Source=″ & App.Path & ″數據庫名稱.mdb″& _
″Mode=Share Deny NoneExtended Properties=''Persist Security Info=False″ & _
″Jet OLEDBDatabase Password='ASP561rbc'″
這種方法雖然代碼長一些,但對數據環境要求低,且結構清晰,所編寫的發布程序也大為減小。由於與鏈接SQL Server等數據庫的方法一樣,因而大量的操作數據庫的代碼相同,當數據庫需要由Access擴充到一些大型數據庫,或由一些大型數據庫裁剪出一個簡單數據庫時,程序的移植會比較方便。
另外,這種方法對於Access97及Access2000均能很好地支持,兼容性好。對於大量插入、刪除、修改等操作,只在Connection層進行即可,既可提高速度又可減少代碼。
如果還要獲取具體的記錄集內容,則須再根據條件打開具體的庫表,代碼如下:
Set LocRst1 = New ADODB.Recordset
LocRst1.CursorType = adOpenKeyset
LocRst1.LockType = adLockOptimistic
LocRst1.Open ″SELECT FROM 表名″ LocCnn1adCmdText
提示:一般情況下,建議使用第二種方法。