创建用于验证字段数据的有效性规则

创建用于验证字段数据的有效性规则

重要:  本文是由机器翻译的,请参阅免责声明。请在 此处 中查找本文的英文版本以便参考。

您可以检查或使用有效性规则中输入验证 Access 桌面数据库中的数据。有三种类型的在 Access 中的有效性规则:

  • 字段验证规则   您可以使用有效性规则指定的所有有效的字段值必须满足的条件。例如,日期字段可能不允许在过去的值的验证规则。

  • 记录有效性规则   您可以使用有效性规则来指定有效的所有记录必须都满足的条件。例如,具有两个日期字段的记录可能需要一个字段的值始终前面的其他字段值 (例如,StartDate 是结束日期之前)。

  • 验证窗体上   您可以使用窗体上的控件的有效性规则属性指定输入到该控件的所有值必须都满足的条件。有效性规则控件属性 works 等字段验证规则。

    注意: 本文不适用于 Access Web 应用 - 使用 Access 设计并联机发布的数据库。

本文内容

概述

有效性规则的类型

您可以在哪些位置使用有效性规则

什么都可以放在有效性规则

向表添加有效性规则

创建字段验证规则

创建消息显示无效字段输入

创建记录有效性规则

创建消息显示无效记录输入

根据新的有效性规则来测试现有数据

向窗体上的控件添加验证规则

创建控件的有效性规则

有效性规则参考

验证规则和验证文本示例

常见有效性规则运算符的语法示例

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

概述

本文说明如何使用表字段和窗体控件中的有效性规则和验证文本。有效性规则是限制表字段中的输入或窗体中的控件(例如文本框)的一种方法。验证文本要求您提供消息,以帮助输入无效数据的用户。

输入数据时,Access 检查输入是否违反有效性规则,如果违反,则不接受输入,Access 将显示一条消息。

Access 提供多种方法限制输入:

  • 数据类型   表中的每个字段中具有限制用户可以输入的数据类型。例如,包含日期/时间字段只接受日期和时间、 货币字段接受仅货币数据,依此类推。

  • 字段属性   某些字段属性限制数据输入。例如,字段的字段大小属性会限制输入通过限制的数据量。

    您还可以使用有效性规则属性要求特定值和验证文本属性,以提醒用户任何错误。例如,例如输入规则> 100 和 < 1000年有效性规则属性强制用户输入 100 和 1000 之间的值。如规则[EndDate] > = [StartDate]强制用户输入一个日期的结束日期或之后开始日期。输入文本,如"输入 100 和 1000 之间的值"或"输入的结束日期或之后的开始日期"中验证文本属性告诉用户,当他们进行了误操作,以及如何修复错误。

  • 输入掩码   您可以使用输入的掩码通过强制用户以特定方式输入值验证数据。例如,输入的掩码可以强制用户欧洲格式,如 2007.04.14 输入日期。

可以单独使用这些验证数据方法或互相结合使用。数据类型不可选,提供大部分最基本的数据验证类型。

有关数据类型、 字段大小和输入的掩码的详细信息,请参阅数据类型和字段属性简介一文。

有效性规则的类型

可以创建两种基本类型的有效性规则:

  • 字段验证规则   使用字段验证规则检查时,将该字段的字段中输入的值。例如,假设您有一个日期字段中,并且您输入> = #01/01/2010年 #该字段的有效性规则属性中。该规则现在要求用户输入或 2010 年 1 月 1 日之后的日期。如果您输入早于 2010 年的日期,然后尝试将焦点放在另一个字段,Access 会阻止您离开当前字段,直到解决的问题。

  • 记录有效性规则   使用记录有效性规则来控制何时可以保存记录 (在表格中的行)。字段验证规则,与记录验证规则引用同一个表中的其他字段。当您需要检查对这些值在另一个字段中的值时,您可以创建记录有效性规则。例如,假设您的业务要求您提供 30 天内的产品,并且,如果您不在该时间内提供的您必须向您的客户退款的购买价格的一部分。您可以定义记录有效性规则,如[要求日期] < = [订购日期] + 30以确保用户不会输入发货日期太久 (要求日期字段中的值)。

如果有效性规则的语法看上去很晦涩,请参阅的说明语法以及一些有效性规则示例的部分内容都可以放在有效性规则

可以在哪些位置使用有效性规则

可以为表字段和窗体上的控件定义有效性规则。如果为表定义规则,则这些规则在您导入数据时适用。若要向表中添加有效性规则,请打开表并使用功能区的“字段”选项卡中的命令。若要向窗体中添加有效性规则,请在布局视图中打开该窗体,然后向各个控件的属性添加规则。

添加到表中的验证规则部分中的步骤解释如何向表字段添加验证规则。添加有效性规则向窗体上的控件,本文后面部分中的步骤解释如何对单个控件的属性中添加规则。

可以在有效性规则中使用哪些内容

有效性规则可以包含表达式-返回单个值的函数。您可以使用表达式执行计算、 操作字符或测试数据。有效性规则表达式测试数据。例如,表达式可以检查的一系列值,如"东京"或者"莫斯科"或者"巴黎"或者"赫尔辛基"之一。表达式还可以执行的数学运算。例如,表达式< 100强制用户输入小于 100 的值。表达式([订购日期]-[发货日期])计算经过订单时间和发货之间的天数。

有关表达式的详细信息,请参阅构建表达式一文。

返回页首

向表添加有效性规则

可以添加字段验证规则和/或记录有效性规则。字段验证规则检查字段的输入,并在焦点离开字段时应用。记录有效性规则检查一个或多个字段的输入,并在焦点离开记录时应用。记录有效性规则通常会比较两个或多个字段的值。

注释: 以下字段类型不支持有效性规则:

  • 自动编号

  • OLE 对象

  • 附件

  • ReplicationID

创建字段验证规则

  1. 选择要验证的字段。

  2. 在“字段”选项卡上的“字段验证”组中,单击“验证”,然后单击“字段验证规则”。

  3. 使用表达式生成器创建规则。有关使用表达式生成器的详细信息,请参阅使用表达式生成器一文。

创建消息显示无效字段输入

  1. 选择需要无效输入消息的字段。字段应该已拥有有效性规则。

  2. 在“字段”选项卡上的“字段验证”组中,单击“验证”,然后单击“字段验证消息”。

  3. 输入相应的消息。例如,如果验证规则是> 10消息可能是",请输入一个值,这是小于 10。

有关字段有效性规则和消息的一些示例,请参阅有效性规则参考部分。

创建记录有效性规则

  1. 打开要验证记录的表。

  2. 在“字段”选项卡上的“字段验证”组中,单击“验证”,然后单击“记录有效性规则”。

  3. 使用表达式生成器创建规则。有关使用表达式生成器的详细信息,请参阅使用表达式生成器一文。

创建消息显示无效记录输入

  1. 打开需要无效输入消息的表。该表应该已拥有记录有效性规则。

  2. 在“字段”选项卡上的“字段验证”组中,单击“验证”,然后单击“记录验证消息”。

  3. 输入相应的消息。例如,如果验证规则是[StartDate] < [EndDate]消息可能是"StartDate EndDate 必须前面"。

返回页首

根据新的有效性规则来测试现有数据

如果向现有表添加有效性规则,您可能希望测试规则,以查看是否有任何现有数据无效。

注意: 以下过程仅适用于桌面数据库表。

  1. 打开希望在设计视图中测试的表。

    在“设计”选项卡上的“工具”组中,单击“测试有效性规则”。

  2. 单击“”关闭警告消息并启动测试。

  3. 如果系统提示您保存表,请单击“”。

  4. 在执行操作时,可能会看到其他各种警告消息。阅读每条消息中的说明,然后根据需要单击“”或“”完成或停止测试。

返回页首

向窗体中的控件添加有效性规则

验证数据输入到该控件,并帮助用户输入无效数据,您可以使用有效性规则属性和窗体控件的有效性文本属性。

提示:  如果使用功能区中的一个“窗体”命令自动从表中创建窗体,则窗体中相应的控件将继承基础表中的任何字段的有效性。

控件可以拥有不同于表字段的有效性规则,控件可以绑定到该不同的有效性规则。如果希望窗体比表有更多限制,这非常有用。先应用窗体规则,然后应用表规则。如果表比窗体限制更多,则为表字段定义的规则优先。如果规则互斥,则根本无法输入任何数据。

例如,假设您将以下规则应用到表中的日期字段:

< #01/01/2010年 #

但是,然后您对绑定到该日期字段的窗体控件应用了该规则:

> = #01/01/2010年 #

现在,日期字段要求 2010 年之前的值,但是窗体控件要求 2010 年之后的日期,因此您根本无法输入任何数据。

创建控件的有效性规则

  1. 右键单击要更改的窗体,然后单击“布局视图”。

  2. 右键单击要更改的控件,然后单击“属性”打开该控件的属性表。

  3. 单击“全部”选项卡,然后在“有效性规则”属性框中输入有效性规则。

    提示:  单击“生成”按钮启动表达式生成器。

    有关使用表达式生成器的详细信息,请参阅使用表达式生成器一文。

  4. 在“验证文本”属性框中输入消息。

返回页首

有效性规则参考

有效性规则使用 Access 表达式语法。有关表达式的详细信息,请参阅表达式简介一文。

有效性规则和验证文本示例

有效性规则

验证文本

<>0

输入非零值。

>=0

值不得小于零。

- 或 -

必须输入正数。

0 或 >100

值必须为 0 或者大于 100。

0 到 1 之间

输入带百分号的值。(用于将数值存储为百分比的字段)。

<#01/01/2007#

输入 2007 年之前的日期。

>=#01/01/2007# AND <#01/01/2008#

必须输入 2007 年的日期。

<Date()

出生日期不能是将来的日期。

StrComp(UCase([姓氏]),
[姓氏],0) = 0

“姓氏”字段中的数据必须大写。

>=Int(Now())

输入当天的日期。

M 或 F

输入 M(代表男性)或 F(代表女性)。

LIKE "[A-Z]*@[A-Z].com" 或 "[A-Z]*@[A-Z].net" 或 "[A-Z]*@[A-Z].org"

输入有效的 .com、.net 或 .org 电子邮件地址。

[要求日期]<=[订购日期]+30

输入在订单日期之后的 30 天内的要求日期。

[结束日期]>=[开始日期]

输入不早于开始日期的结束日期。

常见有效性规则运算符的语法示例

运算符

函数

示例

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

指定有效性规则的所有部分必须为真。

>= #01/01/2007# AND <=#03/06/2008#

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

或者

指定有效性规则部分并非所有部分必须为真。

一月 OR 二月

<

小于。

<=

小于或等于。

>

大于。

>=

大于或等于。

=

等于。

<>

不等于。

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

在有效性规则中可使用通配符。请记住,Access 支持两个通配符字符集:ANSI-89 和 ANSI-92。这两种标准使用不同的通配符字符集。

默认情况下,所有.accdb 和.mdb 文件都使用 ansi-89 标准。

可以执行下列步骤将数据库的 ANSI 标准更改为 ANSI-92:

  1. “文件”选项卡上,单击“选项”

  2. 在“Access 选项”对话框中,单击“对象设计器”。

  3. 在“查询设计”部分的“SQL Server 兼容语法(ANSI-92)”下,选择“此数据库”。

有关使用适用于 SQL 通配符和 ANSI 标准的详细信息,请参阅Access 通配符参考一文。

返回页首

注意: 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×