[摘 要] 本文說明了在Visual Basic 6.0中如何正確連接已經(jīng)設置密碼的Access 2000格式的數(shù)據(jù)庫,詳細介紹了Data控件、DAO及ADO三種方式的多種方法,并給出了有關代碼。
[關鍵詞] VB 連接 密碼 Access2000
在專業(yè)的數(shù)據(jù)庫軟件開發(fā)中,為了確保數(shù)據(jù)庫中信息的安全,往往要求對其使用的ACCESS數(shù)據(jù)庫文件設置安全密碼,以防止非法用戶通過其它的常規(guī)手段將其打開,從而保護數(shù)據(jù)庫不被非系統(tǒng)授權(quán)的修改或破壞。目前有很多文章介紹如何打開設置密碼的Access 97格式數(shù)據(jù)庫,但不適用于Access 2000格式的數(shù)據(jù)庫,因此如何在Visual Basic 6.0中連接已經(jīng)設置密碼的Access 2000格式的數(shù)據(jù)庫是很多程序員需要解決的問題。筆者在實際操作中總結(jié)出幾種連接方法,下面以qhdedu.mdb數(shù)據(jù)庫(密碼:123456)為例說明具體連接方法。
一、Data控件方式
Data控件是Visual Basic 6.0中的一個內(nèi)置數(shù)據(jù)控件,可以通過設置Data控件的Connect、DatabaseName、RecordSource屬性實現(xiàn)對數(shù)據(jù)庫的連接和訪問。 通過Data控件連接加密的數(shù)據(jù)庫的方法有兩種:
第一種方法是設計時,在“屬性窗口”中將Data控件的Connect屬性的缺省值“Access2000”改為“Access2000;pwd=123456”即可,其它屬性的設置與沒有加密的Access數(shù)據(jù)庫的連接設置相同。
第二種方法是在運行時,通過代碼對Connect屬性賦值來實現(xiàn)。如:
Data1.DatabaseName=App.Path “\\qhdedu.mdb”
Data1.Connect=“Access 2000;pwd=123456”
Data1.RecordSource=“ACONF”‘ACONF為數(shù)據(jù)庫中一個表
二、DAO方式
利用DBEngine的OpenDatabase()方法打開設置密碼的數(shù)據(jù)庫。
打開數(shù)據(jù)庫格式:
Set db=OpenDatabase(dbname[, exclusive[,readonly[,source[,password]]]])
關閉數(shù)據(jù)庫:db.colse
打開數(shù)據(jù)表:Set rs = db.OpenRecordset(source[,type[,options]])
關閉數(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‘設置控件Data1的屬性
三、ADO方式
ADO是Microsoft推出的處理關系數(shù)據(jù)庫和非關系數(shù)據(jù)庫中信息的最新技術(shù),也是Microsoft推崇的用于數(shù)據(jù)連接和訪問的技術(shù)。在Visual Basic 6.0中,Adodc控件、ADO數(shù)據(jù)對象及DataEnvironment(數(shù)據(jù)環(huán)境設計器)都采用的是ADO技術(shù),因而它們處理加密的Access數(shù)據(jù)庫的方法類似。
1.Adodc控件法:在Visual Basic 6.0集成開發(fā)環(huán)境中選擇“工程”菜單,再點擊“部件”菜單項,在彈出的“部件”對話框中選中“Microsoft Ado Data Control 6.0(Sp6)”及“Microsoft DataGrid Control 6.0(Sp6)”選項,這樣就可以在窗體上添加控件“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ù)對象法:要能正確引用ADO數(shù)據(jù)對象,應在Visual Basic 6.0集成開發(fā)環(huán)境中選擇“工程”菜單,再點擊“引用”菜單項,在彈出的“引用”對話框中選中“Microsoft ActiveX Data Objects 2.6 Library”選項來添加ADO數(shù)據(jù)對象類型庫。
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)境設計器)法:有兩種方法可以通過DataEnvironment連接加密的Access 2000數(shù)據(jù)庫:
一種方法是設計時,在DataEnvironment的connection對象的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)設置密碼的Access 2000格式的數(shù)據(jù)庫的幾種方法,在編程過程中可以根據(jù)自己實際情況選擇一種或多種方法綜合使用。
參考文獻:
[1](美)荷茲納(Steven Holzner).Visual Basic 6技術(shù)內(nèi)幕[M].北京:機械工業(yè)出版社,1999
[2]林 永 張樂強:Visual Basic 6.0用戶編程手冊[M].北京:人民郵電出版社,2002.
[3]賽奎春 高春艷 笪淑娥:Visual Basic 精彩編程200例[M].北京:機械工業(yè)出版社,2003