我正在尝试创建验证规则,但在Access中使用SQL。我对此很新。我知道如何在常规Access设计视图中执行此操作,但在使用create table命令时不知道如何执行此操作。到目前为止,我有,
CREATE TABLE CUSTOMERS
(
CustomerName TEXT (20),
Gender TEXT (10),
FavoriteFood TEXT (20)
);
想要为男性/女性/未知的性别添加验证规则。
答案 0 :(得分:3)
字段的验证规则是DAO.TableDef
属性,无法使用Access SQL创建。
如果要将Access SQL用于类似的东西,请使用CHECK CONSTRAINT
。此声明将Gender
值限制为男性,女性或未知。
CREATE TABLE CUSTOMERS
(
CustomerName TEXT (20),
Gender TEXT (10) NOT NULL,
FavoriteFood TEXT (20),
CONSTRAINT allowed_genders CHECK
(
Gender IN ('male','female','unknown')
)
);
注意{A}只能在从ADO执行时在Access SQL中使用。我用CHECK CONSTRAINT
执行了该语句,这是一种ADO方法。
这种方法的一些后果可能使你无法接受......
CurrentProject.Connection.Execute
然后删除该表,或执行DROP CONSTRAINT allowed_genders
,这将同时丢弃表和约束。您可能更喜欢创建表格的更简单版本,然后使用DAO设置验证规则。
DROP TABLE CUSTOMERS
注意:
最后,另一种方法是创建一个包含允许的Dim db As DAO.Database
Dim tdf As DAO.TableDef
Set db = CurrentDb
Set tdf = db.TableDefs("CUSTOMERS")
tdf.Fields("Gender").ValidationRule = "IN ('male','female','unknown')"
tdf.Fields("Gender").ValidationText = "Gender must be male, female, or unknown"
值的查找表,使Gender
成为该查找字段的外键,并强制引用完整性。
这3种方法中的任何一种都可能适合您的情况;选择最合适的选择。 : - )