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