表设计
Access入门新手必修课(十)-Access有效性规则
2016-11-24 22:22:16

Access入门新手必修课(十)-Access有效性规则

Access在表设计时,可以在字段中设计有效性规则,虽然这个学习难度不大,但很多初学员还是很容易出错。

所以有必要讲一下。

设置方式:

选择需要的表,打开到表设计状态,选择需要设置有效性的字段,填写有效性规则:

     

有效性规则示例

下表提供了字段级和记录级有效性规则的示例,以及说明性有效性文本。可以针对您的内容对这些示例进行相应的改编。

有效性规则有效性文本
<>0输入非零值。
>=0值不得小于零。

- 或 -

必须输入正数。
0 or >100值必须为 0 或者大于 100。
BETWEEN 0 AND 1输入带百分号的值。(用于将数值存储为百分数的字段。)
<#01/01/2007#输入 2007 年之前的日期。
>=#01/01/2007# AND <#01/01/2008#必须输入 2007 年的日期。
<Date()出生日期不能是将来的日期。
StrComp(UCase([姓氏]),[姓氏],0) = 0“姓氏”字段中的数据必须大写。
>=Int(Now())输入当天的日期。
M Or F输入 M(代表男性)或 F(代表女性)。
LIKE "[A-Z]*@[A-Z].com" OR "[A-Z]*@[A-Z].net" OR "[A-Z]*@[A-Z].org"输入有效的 .com、.net 或 .org 电子邮件地址。
[要求日期]<=[订购日期]+30输入在订单日期之后的 30 天内的要求日期。
[结束日期]>=[开始日期]输入不早于开始日期的结束日期。

常见有效性规则的语法

有效性规则中的表达式不使用任何特殊语法。本节中的信息说明某些较常见类型的有效性规则的语法。在执行操作时,请记住:表达式和函数可能会非常复杂,全面的讨论不在本文讨论范围之内。

有关表达式的详细信息,请参阅创建表达式一文。有关函数的详细信息,请参阅函数(按类别排列)一文。

创建表达式时,请牢记下列规则:

  • 将表字段的名称用方括号括起来,例如:[要求日期]<=[订购日期]+30

  • 将日期用井号 (#) 括起来,例如:<#01/01/2007#

  • 将文本值用双引号括起来,例如:IN ("东京","巴黎","莫斯科")。另外,请注意用逗号分隔项目,并将列表放在圆括号内。

除了上述规则之外,下表显示了常见的算术运算符并提供了使用方法示例。

运算符函数示例
NOT测试相反值。在除 IS NOT NULL 之外的任何比较运算符之前使用。NOT > 10(与 <=10 相同)。
IN测试值是否等于列表中的现有成员。比较值必须是括在圆括号中的逗号分隔列表。IN ("东京","巴黎","莫斯科")
BETWEEN测试值范围。必须使用两个比较值(低和高),并且必须使用 AND 分隔符来分隔这两个值。  BETWEEN 100 AND 1000(与 >=100 AND <=1000相同)
LIKE匹配文本和备注字段中的模式字符串。LIKE "Geo*"
IS NOT NULL强制用户在字段中输入值。此设置与将“必填”字段属性设置为“是”具有同样的效果。但是,如果启用了“必填”属性但用户没有输入值,则 Access 会显示令人稍感不快的错误消息。通常,如果使用 IS NOT NULL 并在“有效性文本”属性中输入友好的消息,则您的数据库会更易于使用。IS NOT NULL
AND指定您输入的所有数据必须为 True 或在指定的范围内。>= #01/01/2007# AND <=#03/06/2008#

 注释   您还可以使用 AND来组合有效性规则。例如:NOT "英国" AND LIKE "英*"

OR指定可以有一段或多段数据为 True。一月 OR 二月
<小于。
<=小于或等于。
>大于。
>=大于或等于。
=等于。
<>不等于。

在有效性规则中使用通配符

在有效性规则中,可以使用 Access 提供的通配符。请记住,Access 支持两个通配符字符集,这是因为对于用于创建和管理数据库的结构化查询语言 (SQL),Access 支持两种标准(ANSI-89 和 ANSI-92)。这两种标准使用不同的通配符字符集。

默认情况下,所有 .accdb 和 .mdb 文件都使用 ANSI-89 标准,而 Access 项目使用 ANSI-92 标准。如果您是 Access 新手,应注意在 Access 项目中,数据库中的表驻留在运行 Microsoft SQL Server 的计算机上,而窗体、报表和其他对象驻留在其他计算机上。如果需要,可以将 .accdb 和 .mdb 文件的 ANSI 标准更改为 ANSI-92。