我有一个导入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

最佳答案

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

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

但是您可以使用带有ALTER TABLE-ALTER COLUMN语句的DDL(数据定义语言)SQL来做到这一点:

db.Execute "ALTER TABLE [MBDA List] ALTER COLUMN [MBDA Piece ID] LONG"

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

关于vba - 使用VBA Access 2007以编程方式更改字段类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34030230/

10-10 18:47