使用 VBA Access 2007 以编程方式更改字段类型

Ted*_*vid 5 vba ms-access-2007

我有一个导入 Excel 表、更改几个列(字段)名称、添加索引和几个新字段的例程。但是,索引字段从 Excel 导入为 Double,我想将其更改为 Long。除了更改类型外,此代码段均有效:

Set tdf = db.TableDefs(TableName) ' Modify the new MBDA List table
For Each fld In tdf.Fields
    Select Case fld.Name ' Change the name of specific fields
        Case "MBDA Piece ID #"
            fld.Name = "MBDA Piece ID"
            fld.Type = dbLong ' change the type from Double to Long
        Case ">>Grade Level"
            fld.Name = "Grade"
        Case Else
    End Select
Next fld
NumFlds = i
Run Code Online (Sandbox Code Playgroud)

And*_*dre 4

一旦表字段成为表的一部分,您就无法更改它的类型。设置fld.Type仅在向表添加新字段时有效。

您的代码可能会给出“错误 3219:无效操作”?

但是您可以使用 DDL(数据定义语言)SQL 并使用ALTER TABLE-ALTER COLUMN语句来完成此操作:

db.Execute "ALTER TABLE [MBDA List] ALTER COLUMN [MBDA Piece ID] LONG" 
Run Code Online (Sandbox Code Playgroud)

编辑:以下是 DDL 数据类型名称与 DAO 常量的概述(例如dbLong): http: //allenbrowne.com/ser-49.html