国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

建立、改變及重構(gòu)Access數(shù)據(jù)庫(kù)

2019-11-18 17:49:09
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
由VB提供的DataManager對(duì)于開(kāi)發(fā)人員來(lái)講并不是一件強(qiáng)大的工具。對(duì)于那些沒(méi)有裝access數(shù)據(jù)庫(kù)的人來(lái)說(shuō),在開(kāi)發(fā)時(shí)建立.改變或重構(gòu)數(shù)據(jù)庫(kù),以及載入/重載表單都是一件痛苦的事。此外DataManager不能讓我們打印數(shù)據(jù)庫(kù)的結(jié)構(gòu)。

讓我們編一個(gè)小程序?qū)崿F(xiàn)上述功能,然后工程結(jié)束后把它拋棄.

首先可以用一個(gè)以逗號(hào)分隔的文本文件來(lái)儲(chǔ)存表結(jié)構(gòu),如下面這個(gè)人員表。

lPersonID,Long,,person'sID
sPersonFirstName,Text,20,person'sfirstname
sPersonLastName,Text,20,person'slastname
bIsAFunPerson,Boolean,,invitetoaparty?
iTypeOfJob,Integer,,0=None1=Manual2=Office3=
該表有六列,每列獨(dú)占一行。每行中用逗號(hào)分隔下列各項(xiàng):字段名.字段類型.字段長(zhǎng)度(如果不是字符型字段,就留空,僅用逗號(hào)分隔)及字段描述。如果你想在字段描述中使用逗號(hào),你可以不用逗號(hào)分隔各項(xiàng),
換成Tab分隔。
一個(gè)通用程序能讀取這些文件并根據(jù)它們建立起數(shù)據(jù)庫(kù)。這種方法,連同一些通用的導(dǎo)入/導(dǎo)出程序能大大加快程序開(kāi)發(fā)的速度。舉例來(lái)說(shuō),你不能在DM中刪除一個(gè)表的一列,但通過(guò)刪除CSV文件中對(duì)一列的定義,然后重新運(yùn)行構(gòu)建數(shù)據(jù)庫(kù)的程序,你就能輕松做到這一點(diǎn)。

如果你想打印出數(shù)據(jù)庫(kù)的結(jié)構(gòu),方法也很簡(jiǎn)單:用
Excel讀CSV文件,再將其粘貼到Word中,這樣你就可以打印出整個(gè)數(shù)據(jù)庫(kù)的結(jié)構(gòu)了。

下面是程序代碼:

SubCreateTable(sDatabaseNameAsString,sCSVFileNameAsString,
sTableNameAsString)
DimiTempAsInteger
'將控制權(quán)交還給操作系統(tǒng),使其在創(chuàng)建數(shù)據(jù)庫(kù)的同時(shí)能運(yùn)行其它程序-別讓你的計(jì)算機(jī)閑著!
iTemp=DoEvents()
'創(chuàng)建一個(gè)300X3數(shù)組
ReDimsTables(300,3)AsString
DimsDataTypeLineAsString

'讀取CSV文件,并將字段定義保存在數(shù)組中
CallReadTableDefinition(sCSVFileName,sTables())

DimtblAsNewTableDef
DimfldAsField

'打開(kāi)數(shù)據(jù)庫(kù)
DimdbPersonsAsdatabase
SetdbPersons=OpenDatabase(sDatabaseName&".MDB",True)



'記錄下新的表單名
tbl.Name=sTableName

'增添第一個(gè)字段
Setfld=NewField
fld.Name=sTables(1,1)
fld.Type=GetFieldType((sTables(1,2)))
fld.Size=Val(sTables(1,3))
tbl.Fields.Appendfld


dbPersons.TableDefs.Appendtbl

'增加其它的字段
DimiNextColAsInteger
iNextCol=1
DoWhileTrue
Setfld=NewField
iNextCol=iNextCol 1
'到了表定義的底部則退出
IfsTables(iNextCol,1)="***END***"Then
ExitDo
EndIf
fld.Name=s->


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 纳雍县| 固始县| 鄂托克前旗| 凯里市| 潍坊市| 固阳县| 定远县| 哈尔滨市| 信阳市| 贡嘎县| 成安县| 河南省| 荆州市| 蕲春县| 东乌珠穆沁旗| 合作市| 岑巩县| 青冈县| 佛学| 扶沟县| 洛南县| 长岭县| 新乡市| 临澧县| 甘孜| 土默特左旗| 文昌市| 墨玉县| 读书| 兰坪| 佛坪县| 九龙坡区| 六盘水市| 吴桥县| 汉沽区| 武山县| 郎溪县| 凌云县| 扶风县| 嘉峪关市| 泾源县|