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


发表评论