Change data field type using access query
我需要将单个字段数据类型从Long Integer类型更改为Decimal,只需使用属性或设计视图即可轻松完成。
但是我想知道是否可以使用查询或简短的VBA脚本来实现?我无法添加新字段,它必须是现有字段。我们也必须来回执行此操作,具体取决于正在读取数据库的程序。
问题在于我们处于两个程序之间的过渡期。我们拥有带有附件的Microstation V8i,该附件可从.mdb(32位连接)数据库中读取数据,该数据库中的字段和表是预定义的,并且此特定字段是Long Integer。另一个程序是Microstation ConnectEdition,它使用附加组件的更新版本,该附加组件具有到几乎相似的数据库(64位)的连接,但是,附加组件的更新的开发人员已将该字段更改为Decimal(其中其他一些东西)。
由于我们当前同时使用这两个程序,并且需要能够互换使用这两个数据库,因此我正在创建一个组合的宏/查询,以更改必要的部分。为了使此数据类型更加自动化,我需要做的最后一件事是更改数据类型。
编辑添加的VBA:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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 |
您可以通过从ADO连接执行
1 2 3 4 5 | 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 |
我在"立即访问"窗口中测试了这些示例,因此,如果您愿意的话,应该很容易将它们合并到VBA过程中。