
由于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
猜你喜歡
- 開個茶葉店如何?
- 新打的深水井水咸如何解決
- 衣服上汗味重如何去除
- 哪個入口可以進入直通車?直通車如何優化?
- 拼多多小編推薦如何報名?有什么規則?
- 沁水色號如何選擇
- 在家紅酒一般如何保存
- 劍靈白龍鱗如何才能獲得?
- 白頭翁幼鳥如何飼養
- dnf榮譽系統怎么玩 榮譽系統如何開啟
