如何使用VBA for MS Access在预先存在的表中创建字段?

Par*_*dox 1 ms-access vba access-vba ms-access-2010

我有一个数据库Database和一个表Table.我在网上找到了如何从MS Access中的VBA中新创建的数据库和表创建字段,但是在运行宏之前数据库和表已经存在时,我不知道如何执行此操作.

要在没有预先存在的数据库和表的情况下执行此操作,我可以运行以下命令:

Sub CreateTable()

    Dim db As DAO.Database
    Dim table1 As DAO.TableDef

    Set db = CurrentDb

    Set table1 = db.CreateTableDef("ExampleTable")

    With table1
        .Fields.Append.CreateField("newField", String)
    End With
Run Code Online (Sandbox Code Playgroud)

但是我如何调整它以将相同的字段添加到预先存在的表中?

或者更具体地说,我该如何修改

Set table1 = db.CreateTableDef("ExampleTable")
Run Code Online (Sandbox Code Playgroud)

那么table1指向db数据库中的现有表?

Han*_*sUp 5

您可以通过执行Access DDL语句将字段添加到现有表.

Dim strDdl As String
strDdl = "ALTER TABLE ExampleTable ADD COLUMN newField TEXT(255);"
CurrentProject.Connection.Execute strDdl
Run Code Online (Sandbox Code Playgroud)

TEXT(255),255是字段大小---字段可以包含的最大字符数.255是Access文本字段的绝对上限.TEXTADODB.Connection.Execute方法创建字段时,必须包含字段大小的值.如果您愿意,请选择较小的值.

使用DAO方法创建新字段时,如在您的问题中,文本字段的字段大小是可选的.然而,当你不指定大小,Access使用"默认文本字段大小"从您的访问选项设置.

  • 什么是`TEXT(255)`中的`255`? (2认同)