在Access 2007中如何使用查询向访问表添加十进制类型的列? 在GUI中我可以选择数据类型为数字,为此我可以将字段大小设置为十进制。 现在我想用查询做同样的事情。如何做到这一点? 我尝试在访问查询选项中运行以下。但是没有工作
ALTER TABLE MyTable ADD COLUMN MyField DECIMAL (10,3)
另外,我如何将数据类型日期/时间和格式的广告列作为长时间。所以请告诉我如何使用查询或使用任何代码来完成这两项。
答案 0 :(得分:0)
您的查询看起来很好。
默认的Jet 4.0 mdb文件中不支持十进制数据类型。您必须使用SQL Server兼容性语法(ANSI 92)设置在SQL窗口中使用十进制数据类型。
点击菜单,工具>选项。单击“表/查询”选项卡。在SQL Server兼容性语法(ANSI 92)部分中选中“此数据库”复选框。此模式将影响整个数据库,包括带有通配符的查询,因此您可能希望在数据库的副本上尝试此操作
答案 1 :(得分:0)
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)
答案 2 :(得分:0)
上面的office.microsoft链接现在也消失了。以下是如何在Access 2007中设置SQL Server兼容性语法标志(可能稍后 - 我无法检查,因为我只有2007):
如果"这个数据库"复选框已禁用,请尝试关闭并重新打开数据库,然后再次执行这些步骤而不首先触及数据库的任何其他部分
在此更改后,使用legacy" DECIMAL(11,2)"创建/修改表时的SQL工作正常。