⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 db_t_def.bas

📁 三角形闭合差计算程序
💻 BAS
字号:
Attribute VB_Name = "DB_Table_Def"
Sub D(Ier)
'定义数据库表
Dim ObsDataTd As TableDef '观测数据表
Dim PotNameTd As TableDef '点名表
Dim LevDirValTd As TableDef '水平方向值表
Dim CalResultTd As TableDef '计算成果表
Dim BInfTd As TableDef '基本信息表
Dim InfTd As TableDef '信息表
Dim RepHeadTd As TableDef '报表表头表
Dim RepDataTd As TableDef '报表数据表
Dim ProInfTd As TableDef '项目信息表
'定义数据库字段
Dim ObsDataFlds(3) As Field, PotNameFlds(1) As Field
Dim CalResultFlds(8) As Field, BInfFlds(9) As Field
Dim RepHeadFlds(3) As Field, RepDataFlds(8) As Field
'Dim LevDirValFlds(3) As Field,
Dim InfFlds(4) As Field
Dim ProInfFlds(1) As Field
Dim tmp As String, i As Integer
Dim arecord As Recordset
    Set g_MyWs = DBEngine.Workspaces(0)
    Set g_d_Base = g_MyWs.CreateDatabase(g_ProjectFile, dbLangGeneral, dbVersion30)
    
    Set ObsDataTd = g_d_Base.CreateTableDef("观测数据表")
    Set PotNameTd = g_d_Base.CreateTableDef("点名表")
    Set CalResultTd = g_d_Base.CreateTableDef("观测成果表")
    Set LevDirValTd = g_d_Base.CreateTableDef("水平方向值表")
    Set BInfTd = g_d_Base.CreateTableDef("基本信息表")
    Set InfTd = g_d_Base.CreateTableDef("信息表")
    Set RepDataTd = g_d_Base.CreateTableDef("报表数据表")
    Set RepHeadTd = g_d_Base.CreateTableDef("报表表头表")
    Set ProInfTd = g_d_Base.CreateTableDef("项目信息表")

    '建立项目信息表
    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)
    'Set ObsDataFlds(4) = 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)
    'Set PotNameFlds(2) = PotNameTd.CreateField("点名2", dbText, 10)
    'Set PotNameFlds(3) = PotNameTd.CreateField("点名3", dbText, 10)
    'Set PotNameFlds(2) = PotNameTd.CreateField("水平方向值()", dbDouble)
    For i = 0 To 1
        PotNameTd.Fields.Append PotNameFlds(i)
    Next i
    g_d_Base.TableDefs.Append PotNameTd

    '建立水平方向值表
    'Set LevDirValFlds(0) = LevDirValTd.CreateField("序号", dbInteger)
    'Set LevDirValFlds(1) = LevDirValTd.CreateField("点名", dbText, 10)
    'Set LevDirValFlds(1) = LevDirValTd.CreateField("测站名", dbDouble)
    'Set LevDirValFlds(2) = LevDirValTd.CreateField("目标名", dbDouble)
    'Set LevDirValFlds(3) = LevDirValTd.CreateField("水平方向值", dbText, 10)
   
    'For i = 0 To 3
    '    LevDirValTd.Fields.Append LevDirValFlds(i)
    'Next i
    'g_d_Base.TableDefs.Append LevDirValTd

    '建立计算成果表
    Set CalResultFlds(0) = CalResultTd.CreateField("序号", dbInteger)
    Set CalResultFlds(1) = CalResultTd.CreateField("点名1", dbText, 10)
    Set CalResultFlds(2) = CalResultTd.CreateField("点名2", dbText, 10)
    Set CalResultFlds(3) = CalResultTd.CreateField("点名3", dbText, 10)
    Set CalResultFlds(4) = CalResultTd.CreateField("角度值1", dbDouble)
    Set CalResultFlds(5) = CalResultTd.CreateField("角度值2", dbDouble)
    Set CalResultFlds(6) = CalResultTd.CreateField("角度值3", dbDouble)
    Set CalResultFlds(7) = CalResultTd.CreateField("三角形内角和", dbDouble)
    Set CalResultFlds(8) = CalResultTd.CreateField("三角形闭合差", dbDouble)
    For i = 0 To 8
        CalResultTd.Fields.Append CalResultFlds(i)
    Next i
    g_d_Base.TableDefs.Append CalResultTd
    
    '创建基本信息表
    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)
    For i = 0 To 9
        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 + -