?? db_table_def.bas
字號:
Attribute VB_Name = "DB_Table_Def"
Sub DB_T_Def(Ier)
'定義數據庫表
Dim ObsDataTd As TableDef '觀測數據表
Dim PotNameTd As TableDef '點名表
Dim TrangleClosureErrorTd As TableDef '三角形閉合差成果表
Dim BInfTd As TableDef '基本信息表
Dim InfTd As TableDef '信息表
Dim ProInfTd As TableDef '項目信息表
'定義數據庫字段
Dim ObsDataFlds(4) As Field, PotNameFlds(2) As Field
Dim BInfFlds(15) As Field
Dim TrangleClosureErrorFlds(4) As Field
Dim InfFlds(4) As Field
Dim ProInfFlds(1) As Field
Dim tmp As String, I As Integer
Dim arecord As Recordset
' On Error GoTo 100
'1 使用 Workspace 對象的 CreateDatabase 方法創建新的數據庫。在本例中,
'該方法使用了兩個參量:一個用以指定數據庫的名稱,一個用以指定區域:
Set g_MyWs = DBEngine.Workspaces(0)
Set g_d_Base = g_MyWs.CreateDatabase(g_ProjectFile, dbLangGeneral, dbVersion30)
' 注意 常數 dbVersion30 指定了 Jet version 3.0 數據庫。
'如果使用 dbVersion30 常數創建 3.0 版的數據庫,則只有使用 Jet 3.0
'或更高版本引擎的 32 位的應用程序才能訪問該數據庫。
'2 使用 Database 對象的 CreateTableDef 方法為數據庫中
'的所有表創建新的 TableDef 對象,如下所示:
Set ObsDataTd = g_d_Base.CreateTableDef("觀測數據表")
Set PotNameTd = g_d_Base.CreateTableDef("點名表")
Set TrangleClosureErrorTd = g_d_Base.CreateTableDef("三角形閉合差表")
Set BInfTd = g_d_Base.CreateTableDef("基本信息表")
Set InfTd = g_d_Base.CreateTableDef("信息表")
Set ProInfTd = g_d_Base.CreateTableDef("項目信息表")
'3 使用 TableDef 對象的 CreateField 方法,
'為表中每個字段創建 Field 對象,然后設置每一字段的屬性來定義字段長度、
'數據類型和其它所需的屬性。例如,下面的代碼用以創建 Biblio.mdb 數據庫中
'的 Authors 表:
'建立項目信息表
Set ProInfFlds(0) = ProInfTd.CreateField("項目目錄", dbText, 100)
ProInfTd.Fields.Append ProInfFlds(0)
g_d_Base.TableDefs.Append ProInfTd
Set arecord = g_d_Base.OpenRecordset("項目信息表", dbOpenTable)
With arecord
.AddNew
arecord.Fields(0) = g_ProDir
.Update
.Bookmark = .LastModified
End With
arecord.Close
'建立觀測數據表
Set ObsDataFlds(0) = ObsDataTd.CreateField("序號", dbInteger)
Set ObsDataFlds(1) = ObsDataTd.CreateField("起點名", dbText, 10)
Set ObsDataFlds(2) = ObsDataTd.CreateField("終點名", dbText, 10)
Set ObsDataFlds(3) = ObsDataTd.CreateField("水平方向", dbDouble)
'4 用 Append 方法把每個字段添加到表中,并把每個表添加到數據庫中,如下所示:
For I = 0 To 3
ObsDataTd.Fields.Append ObsDataFlds(I)
Next I
g_d_Base.TableDefs.Append ObsDataTd
'建立點名表
Set PotNameFlds(0) = PotNameTd.CreateField("序號", dbInteger)
Set PotNameFlds(1) = PotNameTd.CreateField("點名", dbText, 10)
For I = 0 To 1
PotNameTd.Fields.Append PotNameFlds(I)
Next I
g_d_Base.TableDefs.Append PotNameTd
'建立三角形閉合差成果表表
Set TrangleClosureErrorFlds(0) = TrangleClosureErrorTd.CreateField("序號", dbInteger)
Set TrangleClosureErrorFlds(1) = TrangleClosureErrorTd.CreateField("點名1", dbText, 10)
Set TrangleClosureErrorFlds(2) = TrangleClosureErrorTd.CreateField("點名2", dbText, 10)
Set TrangleClosureErrorFlds(3) = TrangleClosureErrorTd.CreateField("點名3", dbText, 10)
Set TrangleClosureErrorFlds(4) = TrangleClosureErrorTd.CreateField("三角形閉合差(“)", dbDouble)
For I = 0 To 4
TrangleClosureErrorTd.Fields.Append TrangleClosureErrorFlds(I)
Next I
g_d_Base.TableDefs.Append TrangleClosureErrorTd
'''''''
''''''' '建立觀測成果表
''''''' Set ObsResultFlds(0) = ObsResultTd.CreateField("序號", dbInteger)
''''''' Set ObsResultFlds(1) = ObsResultTd.CreateField("起點名", dbText, 10)
''''''' Set ObsResultFlds(2) = ObsResultTd.CreateField("終點名", dbText, 10)
''''''' Set ObsResultFlds(3) = ObsResultTd.CreateField("高差觀測值(M)", dbDouble)
''''''' Set ObsResultFlds(4) = ObsResultTd.CreateField("改正數(MM)", dbDouble)
''''''' Set ObsResultFlds(5) = ObsResultTd.CreateField("高差平差值(M)", dbDouble)
''''''' Set ObsResultFlds(6) = ObsResultTd.CreateField("平差值中誤差(MM)", dbDouble)
''''''' Set ObsResultFlds(7) = ObsResultTd.CreateField("多余觀測分量", dbDouble)
''''''' Set ObsResultFlds(8) = ObsResultTd.CreateField("標準余差統計量", dbDouble)
''''''' For i = 0 To 8
''''''' ObsResultTd.Fields.Append ObsResultFlds(i)
''''''' Next i
''''''' g_d_Base.TableDefs.Append ObsResultTd
'創建基本信息表
Set BInfFlds(0) = BInfTd.CreateField("項目名稱", dbText, 20)
Set BInfFlds(1) = BInfTd.CreateField("項目地點", dbText, 20)
Set BInfFlds(2) = BInfTd.CreateField("儀器名稱", dbText, 10)
Set BInfFlds(3) = BInfTd.CreateField("儀器編號", dbText, 10)
Set BInfFlds(4) = BInfTd.CreateField("觀測者", dbText, 10)
Set BInfFlds(5) = BInfTd.CreateField("觀測日期", dbText, 20)
Set BInfFlds(6) = BInfTd.CreateField("計算者", dbText, 10)
Set BInfFlds(7) = BInfTd.CreateField("計算日期", dbText, 20)
Set BInfFlds(8) = BInfTd.CreateField("三角網點個數", dbInteger)
Set BInfFlds(9) = BInfTd.CreateField("觀測值個數", dbInteger)
Set BInfFlds(10) = BInfTd.CreateField("水平方向中誤差", dbDouble)
For I = 0 To 10
BInfTd.Fields.Append BInfFlds(I)
Next I
g_d_Base.TableDefs.Append BInfTd
'創建信息表
Set InfFlds(0) = InfTd.CreateField("建表信息1", dbInteger)
Set InfFlds(1) = InfTd.CreateField("建表信息2", dbInteger)
For I = 0 To 1
InfTd.Fields.Append InfFlds(I)
Next I
g_d_Base.TableDefs.Append InfTd
Set arecord = g_d_Base.OpenRecordset("信息表", dbOpenTable)
With arecord
.AddNew
.Fields(0) = 0
.Fields(1) = 0
.Update
.Bookmark = .LastModified
End With
arecord.Close
Ier = 0
g_d_Base.Close
Set g_d_Base = g_MyWs.OpenDatabase(g_ProjectFile)
Exit Sub
100:
Ier = 1
End Sub
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -