在 access 2007 中,如何使用查询将十进制类型的列添加到访问表中?在 GUI 中,我可以选择数据类型为数字,为此我可以将字段大小设置为十进制。现在我想使用查询来做同样的事情。怎么做?我尝试在访问查询选项中运行以下操作。但没有用
ALTER TABLE MyTable ADD COLUMN MyField DECIMAL (10,3)
另外,我如何使用数据类型日期/时间和格式为 longtime 的列进行广告。所以请告诉我如何使用查询或使用任何代码来完成这两者。
在 access 2007 中,如何使用查询将十进制类型的列添加到访问表中?在 GUI 中,我可以选择数据类型为数字,为此我可以将字段大小设置为十进制。现在我想使用查询来做同样的事情。怎么做?我尝试在访问查询选项中运行以下操作。但没有用
ALTER TABLE MyTable ADD COLUMN MyField DECIMAL (10,3)
另外,我如何使用数据类型日期/时间和格式为 longtime 的列进行广告。所以请告诉我如何使用查询或使用任何代码来完成这两者。
您的查询看起来不错。
默认的 Jet 4.0 mdb 文件不支持十进制数据类型。您必须使用 SQL Server 兼容性语法 (ANSI 92) 设置才能在 SQL 窗口中使用十进制数据类型。
单击菜单,工具 > 选项。单击表/查询选项卡。在 SQL Server 兼容性语法 (ANSI 92) 部分中选中“此数据库”复选框。此模式将影响整个数据库,包括使用通配符的查询,因此您可能希望在您的数据库副本上尝试此操作
VBA解决方案
Dim db As Database
Dim t As TableDef
Dim f As Field
Dim p
Set db = CurrentDb
Set t = db.TableDefs("myTable")
Set f = t.createField("myDateField", dbDate)
Call t.Fields.Append(f)
Set p = f.CreateProperty("Format", dbText, "Long Date")
Call f.Properties.Append(p)
上面的 office.microsoft 链接现在也消失了。以下是在 Access 2007 中设置 SQL Server 兼容性语法标志的方法(可能稍后 - 我无法检查,因为我只有 2007):
如果“此数据库”复选框被禁用,请尝试关闭并重新打开数据库,然后再次执行这些步骤,而不要先接触数据库的任何其他部分
在此更改之后,在创建/更改表时使用旧版“DECIMAL(11,2)”SQL 可以正常工作。