登录说明 | 升级会员 | 会员中心 | 我要投稿 | RSS
您当前的位置:首页 > 行业资讯

.mdb.access数据库VBA-利用工作表数据创建数据表(ADOX)

时间:2025-01-20 08:52:55  来源:  作者:

利用工作表数据创建数据表(ADOX)

引用:microsoft ado ext.2.x for ddl and securityJfe七二检测
 Jfe七二检测
   Jfe七二检测
代码:Jfe七二检测
Public Sub1_10()Jfe七二检测
    Dim myCat As New ADOX.Catalog   ‘定义catalog变量Jfe七二检测
    Dim myTable As New ADOX.Table   ‘定义table变量Jfe七二检测
    Dim myColumn As ADOX.Column   ‘定义column变量Jfe七二检测
    Dim myIdx   As New ADOX.Index  ‘定义index变量Jfe七二检测
    Dim ws As Worksheet              ‘定义worksheet变量Jfe七二检测
    Dim i As Long           Jfe七二检测
    Dim myData As String              ‘Jfe七二检测
    myData = ThisWorkbook.Path & "\学生成绩管理.mdb"   ‘指定数据文件Jfe七二检测
    ‘判断是否有保存数据表资料的工作表存在Jfe七二检测
On Error Resume NextJfe七二检测
    Set ws = Worksheets("数据表设计")Jfe七二检测
    On Error GoTo 0Jfe七二检测
    If ws Is Nothing ThenJfe七二检测
        MsgBox "没有数据表资料存在!", vbCritical, "警告"Jfe七二检测
        Exit SubJfe七二检测
    End IfJfe七二检测
    ws.ActivateJfe七二检测
    ‘建立与数据库的连接Jfe七二检测
    myCat.ActiveConnection = "provider=microsoft.jet.oledb.4.0;" _Jfe七二检测
        & " data source=" & myDataJfe七二检测
    ‘删除已经存在的数据表Jfe七二检测
    On Error Resume NextJfe七二检测
    myCat.Tables.Delete ws.Range("B1").ValueJfe七二检测
    On Error GoTo 0Jfe七二检测
    ‘建立索引Jfe七二检测
    myIdx.Name = "PrimaryKey"Jfe七二检测
    myIdx.PrimaryKey = TrueJfe七二检测
    ‘开始根据工作表的数据创建数据表Jfe七二检测
    With myTableJfe七二检测
        .Name = ws.Range("B1").ValueJfe七二检测
        For i = 4 To ws.Range("A65536").End(xlUp).RowJfe七二检测
            Set myColumn = New ColumnJfe七二检测
            With myColumnJfe七二检测
                .Name = ws.Cells(i, 1).ValueJfe七二检测
                .Type = GetConstNo(ws.Cells(i, 2).Value)Jfe七二检测
                If ws.Cells(i, 3).Value > 0 ThenJfe七二检测
                    .DefinedSize = ws.Cells(i, 3).ValueJfe七二检测
                    .Attributes = adColNullableJfe七二检测
                End IfJfe七二检测
            End WithJfe七二检测
            .Columns.Append myColumnJfe七二检测
            If ws.Cells(i, 4).Value = "是" ThenJfe七二检测
                myIdx.Columns.Append ws.Cells(i, 1).ValueJfe七二检测
            End IfJfe七二检测
        NextJfe七二检测
    End WithJfe七二检测
    ‘将表定义进行保存Jfe七二检测
    myCat.Tables.Append myTableJfe七二检测
    myTable.Indexes.Append myIdxJfe七二检测
    ‘弹出信息Jfe七二检测
MsgBox "数据表<" & ws.Range("B1").Value & ">创建成功!", _Jfe七二检测
        vbOKOnly + vbInformation, "创建数据表"Jfe七二检测
    ‘关闭连接,并释放变量Jfe七二检测
Set ws = NothingJfe七二检测
    Set myIdx = NothingJfe七二检测
    Set myTable = NothingJfe七二检测
    Set myCat = NothingJfe七二检测
End SubJfe七二检测
 Jfe七二检测
‘将工作表中定义的数据类型(字符串型)转换为字段类型VBA常量,即编制一个自定义函数GetConstNoJfe七二检测
Function GetConstNo(myStr As String) As IntegerJfe七二检测
    Select Case myStrJfe七二检测
        Case "adBigInt": GetConstNo = 20Jfe七二检测
        Case "adBinary": GetConstNo = 128Jfe七二检测
        Case "adBoolean": GetConstNo = 11Jfe七二检测
        Case "adBSTR": GetConstNo = 8Jfe七二检测
        Case "adChapter": GetConstNo = 136Jfe七二检测
        Case "adChar": GetConstNo = 129Jfe七二检测
        Case "adCurrency": GetConstNo = 6Jfe七二检测
        Case "adDate": GetConstNo = 7Jfe七二检测
        Case "adDBDate": GetConstNo = 133Jfe七二检测
        Case "adDBTime": GetConstNo = 134Jfe七二检测
        Case "adDBTimeStamp": GetConstNo = 135Jfe七二检测
        Case "adDecimal": GetConstNo = 14Jfe七二检测
        Case "adDouble": GetConstNo = 5Jfe七二检测
        Case "adEmpty": GetConstNo = 0Jfe七二检测
        Case "adError": GetConstNo = 10Jfe七二检测
        Case "adFileTime": GetConstNo = 64Jfe七二检测
        Case "adGUID": GetConstNo = 72Jfe七二检测
        Case "adIDispatch": GetConstNo = 9Jfe七二检测
        Case "adInteger": GetConstNo = 3Jfe七二检测
        Case "adIUnknown": GetConstNo = 13Jfe七二检测
        Case "adLongVarBinary": GetConstNo = 205Jfe七二检测
        Case "adLongVarChar": GetConstNo = 201Jfe七二检测
        Case "adLongVarWChar": GetConstNo = 203Jfe七二检测
        Case "adNumeric": GetConstNo = 131Jfe七二检测
        Case "adPropVariant": GetConstNo = 138Jfe七二检测
        Case "adSingle": GetConstNo = 4Jfe七二检测
        Case "adSmallInt": GetConstNo = 2Jfe七二检测
        Case "adTinyInt": GetConstNo = 16Jfe七二检测
        Case "adUnsignedBigInt": GetConstNo = 21Jfe七二检测
        Case "adUnsignedInt": GetConstNo = 19Jfe七二检测
        Case "adUnsignedSmallInt": GetConstNo = 18Jfe七二检测
        Case "adUnsignedTinyInt": GetConstNo = 17Jfe七二检测
        Case "adUserDefined": GetConstNo = 132Jfe七二检测
        Case "adVarBinary": GetConstNo = 204Jfe七二检测
        Case "adVarChar": GetConstNo = 200Jfe七二检测
        Case "adVariant": GetConstNo = 12Jfe七二检测
        Case "adVarNumeric": GetConstNo = 139Jfe七二检测
        Case "adVarWChar": GetConstNo = 202Jfe七二检测
        Case "adWChar": GetConstNo = 130Jfe七二检测
        Case Else: GetConstNo = -1Jfe七二检测
    End SelectJfe七二检测
End FunctionJfe七二检测
 Jfe七二检测
 
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
合肥住建口检测单位招聘,高级工程师+协会九大专项证书,人员全职兼职均可
合肥住建口检测单位招
关于印发安徽省建设工程专业技术资格评审标准条件的通知(图文)
关于印发安徽省建设工
一般溶液有效期一览表
一般溶液有效期一览表
2022年一建《机电》真题解析
2022年一建《机电》真
相关文章
    无相关信息
栏目更新
栏目热门