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# |
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。