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