gpt4 book ai didi

sql - 如何在Access with Alter Table中创建一个十进制字段?

转载 作者:行者123 更新时间:2023-12-04 13:36:00 24 4
gpt4 key购买 nike

我想以编程方式在MS Access表中创建一个新列。我尝试了ALTER TABLE MyTable Add MyField DECIMAL (9,4) NULL;的许多排列并得到:

Syntax Error in Field Definition



我可以轻松创建一个类型为 Double的数字字段,但是我想要 decimal。我非常希望在单个 ALTER TABLE语句中执行此操作,而不必创建一个字段然后对其进行更改。

我正在使用Access 2003。

最佳答案

如果要在acces表中创建新列,则可以轻松使用DAO.tableDef对象:

Dim my_tableDef As DAO.TableDef
Dim my_field As DAO.Field

Set my_tableDef = currentDb.TableDefs(my_table)
Set my_Field = my_tableDef.CreateField(my_fieldName, dbDecimal, myFieldSize)
my_Field.decimalPlaces = myDecimalPlaces
my_Field.defaultValue = myDefaultValue

my_tableDef.Fields.Append my_Field

set my_Field = nothing
set my_tableDef = nothing

当然,您可以进一步将其删除。

您可能有可能使用ADODB(或ADOX?)对象这样做,但是只要您在处理mdb文件,DAO便是直接而有效的。

PS:在一些论坛上检查后,似乎存在一个带有十进制字段和DAO的错误。 http://allenbrowne.com/bug-08.html。建议是“加倍追求”(这是我通常会做的,以避免与十进制舍入有关的任何困惑问题)或使用“隐式” ADO来修改您的数据库
strSql = "ALTER TABLE MyTable ADD COLUMN MyField DECIMAL (28,3);"
CurrentProject.Connection.Execute strSql

关于sql - 如何在Access with Alter Table中创建一个十进制字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/180929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com