使用访问查询更改数据字段类型

问题描述 投票:1回答:1

我需要将单个字段数据类型从Long Integer类型更改为Decimal,只需使用属性或设计视图即可轻松完成。

但是我想知道是否可以使用查询或简短的VBA脚本?我无法添加新字段,它必须是现有字段。我们也必须来回执行此操作,具体取决于正在读取数据库的程序。

问题是我们处于两个程序之间的过渡期。我们的Microstation V8i带有一个附加组件,可从.mdb(32位连接)数据库中读取数据,该数据库中的字段和表是预定义的,并且此特定字段是Long Integer。另一个程序是Microstation ConnectEdition,它使用附加组件的更新版本,该附加组件具有到几乎相似的数据库(64位)的连接,但是,附加组件的更新的开发人员已将该字段更改为Decimal(其中其他一些东西)。

由于我们目前同时使用这两个程序,并且需要能够互换使用这两个数据库,所以我正在创建一个组合的宏/查询,以更改必要的部分。为了使此数据类型更加自动化,我需要做的最后一件事是更改数据类型。

编辑添加的VBA:

Public Function changeDataType1()

Dim db As DAO.Database
Dim table As DAO.TableDef

Set db = CurrentDb
strSql = "ALTER TABLE feature ALTER COLUMN mslink DECIMAL(18,0);"
CurrentProject.Connection.Execute strSql
strSQL1 = "ALTER TABLE ugfeature ALTER COLUMN feature DECIMAL(18,0);"
CurrentProject.Connection.Execute strSQL1

Set db = Nothing

End Function
sql ms-access access-vba
1个回答
1
投票

您可以通过从ADO连接执行ALTER TABLE语句来在这些数据类型之间切换字段。 (请参见艾伦·布朗的note about DECIMAL support。)

strSQL = "ALTER TABLE MyTable ALTER COLUMN switch_type LONG;"
CurrentProject.Connection.Execute strSQL

strSQL = "ALTER TABLE MyTable ALTER COLUMN switch_type DECIMAL(18,9);"
CurrentProject.Connection.Execute strSQL

我在Access Instant窗口中测试了这些示例,因此,如果您愿意的话,应该很容易将它们合并到VBA过程中。

© www.soinside.com 2019 - 2024. All rights reserved.