[摘 要] 本文說(shuō)明了在Visual Basic 6.0中如何正確連接已經(jīng)設(shè)置密碼的Access 2000格式的數(shù)據(jù)庫(kù),詳細(xì)介紹了Data控件、DAO及ADO三種方式的多種方法,并給出了有關(guān)代碼。
[關(guān)鍵詞] VB 連接 密碼 Access2000
在專業(yè)的數(shù)據(jù)庫(kù)軟件開發(fā)中,為了確保數(shù)據(jù)庫(kù)中信息的安全,往往要求對(duì)其使用的ACCESS數(shù)據(jù)庫(kù)文件設(shè)置安全密碼,以防止非法用戶通過(guò)其它的常規(guī)手段將其打開,從而保護(hù)數(shù)據(jù)庫(kù)不被非系統(tǒng)授權(quán)的修改或破壞。目前有很多文章介紹如何打開設(shè)置密碼的Access 97格式數(shù)據(jù)庫(kù),但不適用于Access 2000格式的數(shù)據(jù)庫(kù),因此如何在Visual Basic 6.0中連接已經(jīng)設(shè)置密碼的Access 2000格式的數(shù)據(jù)庫(kù)是很多程序員需要解決的問(wèn)題。筆者在實(shí)際操作中總結(jié)出幾種連接方法,下面以qhdedu.mdb數(shù)據(jù)庫(kù)(密碼:123456)為例說(shuō)明具體連接方法。
一、Data控件方式
Data控件是Visual Basic 6.0中的一個(gè)內(nèi)置數(shù)據(jù)控件,可以通過(guò)設(shè)置Data控件的Connect、DatabaseName、RecordSource屬性實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的連接和訪問(wèn)。 通過(guò)Data控件連接加密的數(shù)據(jù)庫(kù)的方法有兩種:
第一種方法是設(shè)計(jì)時(shí),在“屬性窗口”中將Data控件的Connect屬性的缺省值“Access2000”改為“Access2000;pwd=123456”即可,其它屬性的設(shè)置與沒(méi)有加密的Access數(shù)據(jù)庫(kù)的連接設(shè)置相同。
第二種方法是在運(yùn)行時(shí),通過(guò)代碼對(duì)Connect屬性賦值來(lái)實(shí)現(xiàn)。如:
Data1.DatabaseName=App.Path “\\qhdedu.mdb”
Data1.Connect=“Access 2000;pwd=123456”
Data1.RecordSource=“ACONF”‘ACONF為數(shù)據(jù)庫(kù)中一個(gè)表
二、DAO方式
利用DBEngine的OpenDatabase()方法打開設(shè)置密碼的數(shù)據(jù)庫(kù)。
打開數(shù)據(jù)庫(kù)格式:
Set db=OpenDatabase(dbname[, exclusive[,readonly[,source[,password]]]])
關(guān)閉數(shù)據(jù)庫(kù):db.colse
打開數(shù)據(jù)表:Set rs = db.OpenRecordset(source[,type[,options]])
關(guān)閉數(shù)據(jù)表:rs.close
具體連接代碼如下:
Set db=OpenDatabase(App.Path “\\qhdedu.mdb”,True,True, “;Pwd=123456”)
Set rs=db.OpenRecordset(“ACONF”,dbOpenDynaset)
Set Data1.Recordset=rs‘設(shè)置控件Data1的屬性
三、ADO方式
ADO是Microsoft推出的處理關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)中信息的最新技術(shù),也是Microsoft推崇的用于數(shù)據(jù)連接和訪問(wèn)的技術(shù)。在Visual Basic 6.0中,Adodc控件、ADO數(shù)據(jù)對(duì)象及DataEnvironment(數(shù)據(jù)環(huán)境設(shè)計(jì)器)都采用的是ADO技術(shù),因而它們處理加密的Access數(shù)據(jù)庫(kù)的方法類似。
1.Adodc控件法:在Visual Basic 6.0集成開發(fā)環(huán)境中選擇“工程”菜單,再點(diǎn)擊“部件”菜單項(xiàng),在彈出的“部件”對(duì)話框中選中“Microsoft Ado Data Control 6.0(Sp6)”及“Microsoft DataGrid Control 6.0(Sp6)”選項(xiàng),這樣就可以在窗體上添加控件“Adodc1”與“DataGrid1”。具體代碼如下:
connstring=“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” App.Path “\\qhdedu.mdb” “;Persist Security Info=False;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:database password=‘123456’”
Adodc1.ConnectionString=connstring
Adodc1.RecordSource=“select * from ACONF ”
Set DataGrid1.DataSource=Adodc1
2.ADO數(shù)據(jù)對(duì)象法:要能正確引用ADO數(shù)據(jù)對(duì)象,應(yīng)在Visual Basic 6.0集成開發(fā)環(huán)境中選擇“工程”菜單,再點(diǎn)擊“引用”菜單項(xiàng),在彈出的“引用”對(duì)話框中選中“Microsoft ActiveX Data Objects 2.6 Library”選項(xiàng)來(lái)添加ADO數(shù)據(jù)對(duì)象類型庫(kù)。
connstr=“DBQ=”+App.Path “\\qhdedu.mdb”+“;DefaultDir=;DRIVER={Microsoft Access Driver(*.mdb)};password=’123456‘“
Set conn=CreateObject(”ADODB.CONNECTION“)
conn.Open connstr
Set rs=CreateObject(\"adodb.recordset\")
SQL=”select * from ACONF“
rs.Open SQL,conn,3,2
Set DataGrid1.DataSource = rs
3.DataEnvironment(數(shù)據(jù)環(huán)境設(shè)計(jì)器)法:有兩種方法可以通過(guò)DataEnvironment連接加密的Access 2000數(shù)據(jù)庫(kù):
一種方法是設(shè)計(jì)時(shí),在DataEnvironment的connection對(duì)象的ConnectionSource屬性的有效連接字符串后加上“;password=123456”
另一種方法是在DataEnvironment_Initialize()事件中編寫如下代碼:
Private sub DataEnvironment_Initialize( )
Strconn=”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=“ App.Path ”\\qhdedu.mdb“”;Persist Security Info=False;password=123456“
DataEnvironment1.connection1.connectionstring=strconn
End sub
以上為Visual Basic 6.0中連接已經(jīng)設(shè)置密碼的Access 2000格式的數(shù)據(jù)庫(kù)的幾種方法,在編程過(guò)程中可以根據(jù)自己實(shí)際情況選擇一種或多種方法綜合使用。
參考文獻(xiàn):
[1](美)荷茲納(Steven Holzner).Visual Basic 6技術(shù)內(nèi)幕[M].北京:機(jī)械工業(yè)出版社,1999
[2]林 永 張樂(lè)強(qiáng):Visual Basic 6.0用戶編程手冊(cè)[M].北京:人民郵電出版社,2002.
[3]賽奎春 高春艷 笪淑娥:Visual Basic 精彩編程200例[M].北京:機(jī)械工業(yè)出版社,2003