程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> VB如何連接ACCESS數據庫

VB如何連接ACCESS數據庫

編輯:更多關於編程

      由於VB本身並不帶有可以訪問數據庫的類,所以我們需要引用一個包含能訪問數據庫的類來使用數據庫.這裡我們采用ADODB,相比DAO和能訪 問數據庫的API來說,它比DAO更靈活,更強大;而比起API,它更簡單易用,更適合初學者.而Access數據庫比起SQL,也相對簡單了很多,且能 夠滿足中小型應用程序的需要,所以我們在使用數據庫時,選擇了Access.

      就像使用文本文件來存儲數據一樣,我們需要先設計好數據結構,只不過在設計Access數據庫的結構時,我們需要用到其它的程序來進行詳細的規劃.建議采用的程序是office中的Access或VB自帶的VISDATA.

      當數據庫設計好了以後,我們可以開始數據庫編程了.

      首先,我們需要引用ADO.具體的方法是,在工程 -- 引用 中,找到Microsoft ActiveX Data Object *.* Library,這裡的*.*是指的時ADO的版本號,一般來說,應用程序或ActiveX控件都具有向下兼容性,所以我們盡可能選擇比較新的版本.以確 保程序在能識別舊版本Access的同時,也能識別較新版本的Access.

      然後我們需要在程序中創建一個對象.就好比我們在窗體上添加一個FileBox才能看到文件名一樣,只有創建了ADO對象,我們才能夠訪問數據庫.常用的對象有兩個,Connection和Recordset.

      創建這兩個對象的具體方法是:

      1.在引用後,使用New關鍵字,如

      Private Conn As New ADODB.Connection

      Private Reco As New ADODB.Recordset

      2.在沒引用時,用CreateObject創建對象:

      Dim Conn,Reco

      Set Conn = CreateObject(ADODB.Connection)

      Set Reco = CreateObject(ADODB.Recordset)

      創建了對象之後,下一步我們要做的就是打開數據庫了.

      先看下面的代碼,可以成功的打開數據庫.

      Conn.open Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:Main.mdb

      這句代碼打開了D盤中的Main.mdb這個數據庫.

      Connection.Open方法的第一個參數是連接代碼,它將傳遞給系統的數據庫引擎.前半部分 Provider=Microsoft.Jet.OLEDB.4.0,它表示了數據庫的類型.不同的數據庫可能會不同.後半句 Source=d:main.mdb它表示了數據庫所在的絕對路徑.

      打開數據庫之後,還要打開表.假如數據庫中有一個表,表名為Users,字段有兩個,一個為用戶名,一個為密碼.那麼看以下代碼.

      1.想返回Users中,[用戶名]為去年煙花的[密碼]

      Recordset.open Select 密碼 From Users Where 用戶名='去年煙花',Connection,1,1

      之後我們就可以把用戶輸入的密碼進行比較,看是否允許登錄.

      If Recordset.eof and Recordset.bof then

      Msgbox 用戶不存在!,16

      Else

      If PassWord =Recordset(密碼).value then

      msgbox 登錄成功!,64

      Else

      msgbox 密碼錯誤!,32

      End If

      End If

      Recordset.Close

      2.假設Admin已經成功登錄系統,我們想把所有的用戶名和密碼都顯示出來

      Recordset.open Select * From Users,Connection,1,1

      這時,表已經被打開,我們就用以下代碼把它顯示出來.

      Do whlie Not Recordset.eof

      Print 用戶名: & Recordset(用戶名).value & 密碼: & Recordset(密碼).value

      Recordset.MoveNext

      Loop

      Recordset.Close

      由以上代碼示例可以看出,打開表時,可以只打開其中的一個字段,也可以打開所有.第一個參數是SQL語句.

      Select [字段名] From 表名 [Where 條件]

      這裡的條件可以省略.且字段名也可以用*來代替所有字段.

      需要注意的是,如果你用(1)中的方法打開,那麼(2)後面顯示的代碼就不能再用在(1)中.因為(1)裡並沒有打開[用戶名]字段,所以這一句Recordset(密碼)就沒有值存在,還有可能出錯.

      後面的條件,可以用=、>、<等運算符.比如 Where ID > 32.(這裡假設[ID]為數字型.)

      這是打開的部分.第二個很重要的部分就是查詢記錄.

      數據庫它並不是把所有記錄全部放到一個變量中備用的.而是以當前記錄的形式來返回一個值.所以我們想從中找到有用的信息,就必須要對信息進行定位/篩選.

      定位:

      移動到下一條 Recordset.MoveNext

      移動到上一條 Recordset.MovePrevious

      移動到最後一條 Recordset.MoveLast

      移動到第一條 Recordset.MoveFrist

      移動到某一條 Recordset.Move Number

      篩選:

      Recordset.Find 條件

      如:[用方法(2)打開表之後]

      Private Sub Command1_Click()

      Recordset.Find 用戶名= & text1.text

      If Recordset.Eof <> True Then

      Msgbox 該用戶的密碼是: & Recordset(密碼).value,64

      Else

      Msgbox 未找到該用戶的資料!,16

      End If

      End Sub

      MoveNext 只有當Eof不為True時,才可用,否則發生錯誤.而MovePrevious剛是Bof不為True時....

      而只要Eof 和 Bof中有一個不為真時,也就是說只要有一條記錄時,它就可以使用.

      Find 方法中的條件和Open時的第一個參數中的條件表述方法是完全一致的.當在已打開的記錄集中,找不到該記錄時,Eof為True.找到則當前的值就是符合條件的記錄.

      第三個部分就是添加/修改記錄.

      修改記錄很簡單,先按以上的方法找到相關記錄之後,給記錄賦值就可以了.

      比如:[(修改密碼)按方法(1)打開表之後]

      Recordset(密碼).value = 123456

      Recordset.Updata

      需要注意的就是,在修改完成後,要調用Updata方法,這樣修改才能生效.

      而添加記錄則可以用以下代碼來實現:

      Recordset.addnew

      Recordset(用戶名).value = Admin

      Recordset(密碼).value = Admin

      Recordset.Updata

      這裡,先要調用Addnew方法,增加一條新記錄,然後對這個新記錄中的各字段賦值,最後再調用Updata方法.

      到這裡就差不多了,最後說一下上面提到的幾個方法.

      Recordset.Open SQL語句,數據源,游標類型,打開方法

      SQL語句不用說了,就是Select那啥的,目的就是按要求從表中返回數據

      數據源就是一個打開之後的Connection對象.

      填1就可以了

      打開方法對應了幾個常數,具體哪幾個可以從對象浏覽器裡看。

      對應數值的意義:

      1 只讀 2 獨占 3 可寫 4 自已可寫,別人可讀。

      Connection.open 連接代碼,服務器用戶名,密碼。

      這裡的連接代碼就不在多說了,服務器用戶名,密碼只有在連接遠程數據庫時才用到。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved