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

tvz2xvvm  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(555)

我需要将单个字段的数据类型从长整数类型更改为十进制类型,这只需使用属性或设计视图即可轻松完成。
不过,我想知道这是否可以使用查询或短vba脚本?我不能添加新字段,它必须是现有字段。我们必须根据哪个程序正在读取数据库来来回执行此操作。
问题是我们正处于两个项目之间的过渡期。我们有一个microstationv8i,它带有一个插件,可以从.mdb(32位连接)数据库中读取数据,其中字段和表是预定义的,这个特定字段是一个长整数。另一个程序是microstation connectedition,它使用了外接程序的更新版本,该版本与几乎相似的数据库(64位)有连接,但是外接程序更新的开发人员已将此字段更改为十进制(以及其他一些内容)。
由于我们目前同时使用这两个程序,并且需要能够互换地使用这两个数据库,所以我正在创建一个组合宏/查询来更改必要的部分。这种数据类型的改变是我最不需要做的事情,为了使它更加自动化。
编辑添加的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
yi0zb3m4

yi0zb3m41#

您可以通过执行 ALTER TABLE 来自ado连接的语句(参见allen browne关于十进制支持的注解。)

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

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

相关问题