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

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

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

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

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