自從我學(xué)會(huì)了用VB程序自動(dòng)創(chuàng)建Access數(shù)據(jù)庫(kù)后,我放棄了事先創(chuàng)建,喜歡由VB程序自動(dòng)創(chuàng)建。我覺(jué)得自動(dòng)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)有如下幾點(diǎn)好處:
首先,安裝程序丟下了這個(gè)數(shù)據(jù)庫(kù)尾巴。事先創(chuàng)建好的數(shù)據(jù)庫(kù),在安裝程序時(shí)一定要帶著這個(gè)數(shù)據(jù)庫(kù),并將其安裝到用戶的電腦上,就象一個(gè)尾巴一個(gè),走到哪里就帶到哪里。感覺(jué)是個(gè)負(fù)擔(dān)。如果由VB程序自動(dòng)來(lái)創(chuàng)建所需的數(shù)據(jù)庫(kù),就不需要安裝程序老是帶著這個(gè)數(shù)據(jù)庫(kù)了。因?yàn)檫@個(gè)數(shù)據(jù)庫(kù)是由程序自己按照要求隨時(shí)創(chuàng)建的。
其次,用戶數(shù)據(jù)更加安全。由于事先創(chuàng)建的數(shù)據(jù)庫(kù)是由安裝程序帶著走的,并由其安裝到用戶的電腦上,如果用戶需要重新安裝的話,通常會(huì)先缷載,而在缷載時(shí),這個(gè)可能保存了用戶很多重要數(shù)據(jù)的數(shù)據(jù)庫(kù)也會(huì)被刪除,重新安裝后由安裝帶著的那個(gè)原來(lái)數(shù)據(jù)庫(kù)被重新安裝到了用戶電腦上,先前的數(shù)據(jù)可能完全被丟失了。由VB程序自動(dòng)創(chuàng)建的數(shù)據(jù)庫(kù)就不會(huì)發(fā)生這種事情,缷載時(shí)也不會(huì)被刪除,重新安裝應(yīng)用程序也不會(huì)重新來(lái)創(chuàng)建這個(gè)數(shù)據(jù)庫(kù),這只要在程序中判斷一下即可實(shí)現(xiàn)。用戶的數(shù)據(jù)不會(huì)因缷載重新安裝而丟失。
第三,方便程序升級(jí)。程序在用戶手中使用后,通常會(huì)反饋一些很有價(jià)值的意見(jiàn)和建議,這就需要對(duì)原程序進(jìn)行升級(jí)。有時(shí)就會(huì)對(duì)原數(shù)據(jù)庫(kù)結(jié)構(gòu)進(jìn)行一些修改,如果是事先創(chuàng)建就非常麻煩了,采用編程自動(dòng)創(chuàng)建的就比較方便。
VB6編程創(chuàng)建一個(gè)Access數(shù)據(jù)庫(kù)需要在工程中先引用Microsoft ADD Ext. 2.8 for DLL and Security,然后定義兩個(gè)變量,比如:
Dim cat As New ADOX.Catalog
Dim tbl As New ADOX.Table
現(xiàn)在可以用下面這句代碼來(lái)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)文件(比如文件名為abc.mdb,保存在D盤(pán)根目錄下):
cat.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\abc.mdb"
用下面這段代碼可以創(chuàng)建一個(gè)表其及字段:
With tbl
.Name="MyContacts" '表名
.Set .ParentCatalog=cat
.Columns.Append "ContactId",adInteger '創(chuàng)建一個(gè)字段名為ContactId的字段
.Columns("ContactId").Properties("AutoIncrement")=True '設(shè)置字段ContactId的數(shù)據(jù)類型為自動(dòng)編號(hào)
.Keys.Append "kCid",adKeyPrimary,"ContactId" '設(shè)置字段ContactId為主鍵
.Columns.Append "CustomerID",adVarWChar '創(chuàng)建一個(gè)字段名為CustomerID的字符型字段
.Columns("CustomerID").Properties("Default")="DDDD" '設(shè)置字段CustomerID的默認(rèn)值為"DDDD"
.Indeses.Append "cID","CustomerID" '對(duì)字段CustomerID建一個(gè)索引
.Columns.Append "FirstName",adVarWChar
.Indexes.Append "Fir","FirstName"
.Kesy.Append "kFir",adKeyUnique,"FirstName" '加上這句,即完成建立一個(gè)無(wú)重復(fù)的索引。
End With
cat.Tables.Append tbl
至此,VB6完成了自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)。
聯(lián)系客服