访问添加十进制类型的列(带有字段大小的数字)

时间:2013-06-13 08:19:34

标签: sql ms-access command ms-access-2007

在Access 2007中如何使用查询向访问表添加十进制类型的列? 在GUI中我可以选择数据类型为数字,为此我可以将字段大小设置为十进制。 现在我想用查询做同样的事情。如何做到这一点? 我尝试在访问查询选项中运行以下。但是没有工作

ALTER TABLE MyTable ADD COLUMN MyField DECIMAL (10,3)

另外,我如何将数据类型日期/时间和格式的广告列作为长时间。所以请告诉我如何使用查询或使用任何代码来完成这两项。

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):

  • 点击左上角的圆形Office按钮
  • 访问选项
  • 对象设计师
  • 单击SQL Server兼容语法下的任一选项,具体取决于您是仅将其应用于此数据库还是将来的所有数据库

如果"这个数据库"复选框已禁用,请尝试关闭并重新打开数据库,然后再次执行这些步骤而不首先触及数据库的任何其他部分

在此更改后,使用legacy" DECIMAL(11,2)"创建/修改表时的SQL工作正常。