如何用vba在access数据库文件中创建表?

要用vba在access数据库文件中创建表,需要用到ADOX.Catalog对象。

ADOX.Catalog是专门用来遍历数据库中的表、索引、键值、列、视图、以及属性的对象。

要在数据库中创建表,需要用Catalog对象的Tables集合的Append方法添加一个Table对象,这个Table对象需要用Columns对象的Append方法添加一个字段。

如下的VBA代码将在指定的ACCESS数据库文件中添加一个名称为”测试表”的新表,同时该新表有一个名为”测试字段”的字段:

Sub QQ1722187970()
    Dim objCatalog
    Set objCatalog = VBA.CreateObject("ADOX.Catalog")
    Dim sConStr As String
    Dim sPath As String
    sPath = Excel.ThisWorkbook.Path
    Dim oTable
    Dim oColumn
    Set oTable = VBA.CreateObject("ADOX.Table")
    Set oColumn = VBA.CreateObject("ADOX.Column")
    '新建一个表
    With oTable
        .Name = "测试表"
            With oColumn
                .Name = "测试字段"
            End With
        .Columns.Append oColumn
    End With
    With objCatalog
       sConStr = "Provider='Microsoft.ACE.OLEDB.12.0';Data Source=" & sPath & "\ywglb.accdb"
      .ActiveConnection = sConStr
      '添加新建的表
      .Tables.Append oTable
    End With
End Sub

值得注意的是微软的官方文档中指出可以在添加表或者字段时,使用表或字段的名字作为参数的值,经过测试是不行的,只能是表或字段的对象引用。

       

发表评论