在ms访问中检查约束

问题描述

我正在尝试在ms访问(sql视图)中执行此语句,但是当我从数值中删除(3,2)并删除最后2个约束时,这显示了检查约束和numeric(3,2)..上的错误然后检查 这将成功执行...但是我想在表中添加最后一个检查约束。当我再次添加时,这将显示错误..

 CREATE  TABLE COmpuTER(    
    SerialNumber        Int                 NOT NULL,Make                Char(12)            NOT NULL,Model               Char(24)            NOT NULL,ProcessorType       Char(24)            NULL,ProcessorSpeed  Numeric(3,2)        NOT NULL,MainMemory          Char(15)            NOT NULL,diskSize            Char(15)            NOT NULL,CONSTRAINT      COmpuTER_PK             PRIMARY KEY(SerialNumber),CONSTRAINT      MAKE_CHECK              CHECK(Make IN ('Dell','Gateway','HP','Other')),CONSTRAINT      SPEED_CHECK             CHECK(ProcessorSpeed BETWEEN 1.0 AND 4.0)
    );

我该怎么办?我有MS ACCESS 2007

解决方法

尝试在Visual Basic编辑器中使用VBA / ADO运行CREATE TABLE:

Sub CreateMyTable()
    Dim cnn As New ADODB.Connection
    Set cnn = CurrentProject.Connection
    cnn.Execute ("CREATE TABLE ... plus the rest of your create here")
    Set cnn = Nothing
End Sub

使用Access SQL视图可以定义的内容与通过VBA / ADO可以定义的内容之间存在(令人遗憾的)不一致。在这种情况下,我相信Numeric(3,2)在Access SQL视图中将不起作用,我也不认为约束也将起作用。我假设您已将数据库选项设置为与SQL-92 ANSI兼容。