VB如何連接ACCESS數(shù)據(jù)庫(kù)
來(lái)源:易賢網(wǎng) 閱讀:996 次 日期:2014-09-09 09:52:16
溫馨提示:易賢網(wǎng)小編為您整理了“VB如何連接ACCESS數(shù)據(jù)庫(kù)”,方便廣大網(wǎng)友查閱!

由于VB本身并不帶有可以訪問(wèn)數(shù)據(jù)庫(kù)的類,所以我們需要引用一個(gè)包含能訪問(wèn)數(shù)據(jù)庫(kù)的類來(lái)使用數(shù)據(jù)庫(kù).這里我們采用ADODB,相比DAO和能訪 問(wèn)數(shù)據(jù)庫(kù)的API來(lái)說(shuō),它比DAO更靈活,更強(qiáng)大;而比起API,它更簡(jiǎn)單易用,更適合初學(xué)者.而Access數(shù)據(jù)庫(kù)比起SQL,也相對(duì)簡(jiǎn)單了很多,且能 夠滿足中小型應(yīng)用程序的需要,所以我們?cè)谑褂脭?shù)據(jù)庫(kù)時(shí),選擇了Access.

就像使用文本文件來(lái)存儲(chǔ)數(shù)據(jù)一樣,我們需要先設(shè)計(jì)好數(shù)據(jù)結(jié)構(gòu),只不過(guò)在設(shè)計(jì)Access數(shù)據(jù)庫(kù)的結(jié)構(gòu)時(shí),我們需要用到其它的程序來(lái)進(jìn)行詳細(xì)的規(guī)劃.建議采用的程序是office中的Access或VB自帶的VISDATA.

當(dāng)數(shù)據(jù)庫(kù)設(shè)計(jì)好了以后,我們可以開(kāi)始數(shù)據(jù)庫(kù)編程了.

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

然后我們需要在程序中創(chuàng)建一個(gè)對(duì)象.就好比我們?cè)诖绑w上添加一個(gè)FileBox才能看到文件名一樣,只有創(chuàng)建了ADO對(duì)象,我們才能夠訪問(wèn)數(shù)據(jù)庫(kù).常用的對(duì)象有兩個(gè),Connection和Recordset.

創(chuàng)建這兩個(gè)對(duì)象的具體方法是:

1.在引用后,使用New關(guān)鍵字,如

Private Conn As New ADODB.Connection

Private Reco As New ADODB.Recordset

2.在沒(méi)引用時(shí),用CreateObject創(chuàng)建對(duì)象:

Dim Conn,Reco

Set Conn = CreateObject(ADODB.Connection)

Set Reco = CreateObject(ADODB.Recordset)

創(chuàng)建了對(duì)象之后,下一步我們要做的就是打開(kāi)數(shù)據(jù)庫(kù)了.

先看下面的代碼,可以成功的打開(kāi)數(shù)據(jù)庫(kù).

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

這句代碼打開(kāi)了D盤(pán)中的Main.mdb這個(gè)數(shù)據(jù)庫(kù).

Connection.Open方法的第一個(gè)參數(shù)是連接代碼,它將傳遞給系統(tǒng)的數(shù)據(jù)庫(kù)引擎.前半部分 Provider=Microsoft.Jet.OLEDB.4.0,它表示了數(shù)據(jù)庫(kù)的類型.不同的數(shù)據(jù)庫(kù)可能會(huì)不同.后半句 Source=d:main.mdb它表示了數(shù)據(jù)庫(kù)所在的絕對(duì)路徑.

打開(kāi)數(shù)據(jù)庫(kù)之后,還要打開(kāi)表.假如數(shù)據(jù)庫(kù)中有一個(gè)表,表名為Users,字段有兩個(gè),一個(gè)為用戶名,一個(gè)為密碼.那么看以下代碼.

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

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

之后我們就可以把用戶輸入的密碼進(jìn)行比較,看是否允許登錄.

If Recordset.eof and Recordset.bof then

Msgbox 用戶不存在!,16

Else

If PassWord =Recordset(密碼).value then

msgbox 登錄成功!,64

Else

msgbox 密碼錯(cuò)誤!,32

End If

End If

Recordset.Close

2.假設(shè)Admin已經(jīng)成功登錄系統(tǒng),我們想把所有的用戶名和密碼都顯示出來(lái)

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

這時(shí),表已經(jīng)被打開(kāi),我們就用以下代碼把它顯示出來(lái).

Do whlie Not Recordset.eof

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

Recordset.MoveNext

Loop

Recordset.Close

由以上代碼示例可以看出,打開(kāi)表時(shí),可以只打開(kāi)其中的一個(gè)字段,也可以打開(kāi)所有.第一個(gè)參數(shù)是SQL語(yǔ)句.

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

這里的條件可以省略.且字段名也可以用*來(lái)代替所有字段.

需要注意的是,如果你用(1)中的方法打開(kāi),那么(2)后面顯示的代碼就不能再用在(1)中.因?yàn)?1)里并沒(méi)有打開(kāi)[用戶名]字段,所以這一句Recordset(密碼)就沒(méi)有值存在,還有可能出錯(cuò).

后面的條件,可以用=、>、<等運(yùn)算符.比如 Where ID > 32.(這里假設(shè)[ID]為數(shù)字型.)

這是打開(kāi)的部分.第二個(gè)很重要的部分就是查詢記錄.

數(shù)據(jù)庫(kù)它并不是把所有記錄全部放到一個(gè)變量中備用的.而是以當(dāng)前記錄的形式來(lái)返回一個(gè)值.所以我們想從中找到有用的信息,就必須要對(duì)信息進(jìn)行定位/篩選.

定位:

移動(dòng)到下一條 Recordset.MoveNext

移動(dòng)到上一條 Recordset.MovePrevious

移動(dòng)到最后一條 Recordset.MoveLast

移動(dòng)到第一條 Recordset.MoveFrist

移動(dòng)到某一條 Recordset.Move Number

篩選:

Recordset.Find 條件

如:[用方法(2)打開(kāi)表之后]

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 只有當(dāng)Eof不為T(mén)rue時(shí),才可用,否則發(fā)生錯(cuò)誤.而MovePrevious剛是Bof不為T(mén)rue時(shí)....

而只要Eof 和 Bof中有一個(gè)不為真時(shí),也就是說(shuō)只要有一條記錄時(shí),它就可以使用.

Find 方法中的條件和Open時(shí)的第一個(gè)參數(shù)中的條件表述方法是完全一致的.當(dāng)在已打開(kāi)的記錄集中,找不到該記錄時(shí),Eof為T(mén)rue.找到則當(dāng)前的值就是符合條件的記錄.

第三個(gè)部分就是添加/修改記錄.

修改記錄很簡(jiǎn)單,先按以上的方法找到相關(guān)記錄之后,給記錄賦值就可以了.

比如:[(修改密碼)按方法(1)打開(kāi)表之后]

Recordset(密碼).value = 123456

Recordset.Updata

需要注意的就是,在修改完成后,要調(diào)用Updata方法,這樣修改才能生效.

而添加記錄則可以用以下代碼來(lái)實(shí)現(xiàn):

Recordset.addnew

Recordset(用戶名).value = Admin

Recordset(密碼).value = Admin

Recordset.Updata

這里,先要調(diào)用Addnew方法,增加一條新記錄,然后對(duì)這個(gè)新記錄中的各字段賦值,最后再調(diào)用Updata方法.

到這里就差不多了,最后說(shuō)一下上面提到的幾個(gè)方法.

Recordset.Open SQL語(yǔ)句,數(shù)據(jù)源,游標(biāo)類型,打開(kāi)方法

SQL語(yǔ)句不用說(shuō)了,就是Select那啥的,目的就是按要求從表中返回?cái)?shù)據(jù)

數(shù)據(jù)源就是一個(gè)打開(kāi)之后的Connection對(duì)象.

填1就可以了

打開(kāi)方法對(duì)應(yīng)了幾個(gè)常數(shù),具體哪幾個(gè)可以從對(duì)象瀏覽器里看。

對(duì)應(yīng)數(shù)值的意義:

1 只讀 2 獨(dú)占 3 可寫(xiě) 4 自已可寫(xiě),別人可讀。

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

這里的連接代碼就不在多說(shuō)了,服務(wù)器用戶名,密碼只有在連接遠(yuǎn)程數(shù)據(jù)庫(kù)時(shí)才用到。

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:VB如何連接ACCESS數(shù)據(jù)庫(kù)
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)