Access交流网
  • 设为首页|收藏本站|繁体中文|手机版
  •     
  • Access培训-Access开发平台-Access行业开发

  • 首页
  • 资讯
  • 技巧
  • 源码
  • 行业
  • 资源
  • 活动
  • 关于

技巧

ACCESS数据库

启动/设置/选项/背景

修复/压缩

安全/加密/解密

快捷键

版本升级/其它等

数据表

命名方式/设计规范

表设计

查询

Sql语言基础

选择查询

更新查询

删除查询

追加查询

生成表查询

交叉表查询

SQL特定查询

查询参数

查询综合应用

界面/窗体/控件

标签

文本框

命令按钮

组合框/列表框

选项组/复选框/选项按钮

选项卡

子窗体

窗体本身/综合应用

其它

报表打印

报表设计

高级报表

模块/函数/VBA/API/系统

VBA基础

内置函数

调试/跟踪/Debug

模块/类模块

API/COM/系统相关

字符数字日期

网络通信游戏

加密解密安全

文件处理

经典算法

宏/菜单/工具栏/功能区

宏/脚本

菜单/工具栏

功能区/Ribbon

图表/图形/图像/多媒体

图表

图形/图像

音频

视频/动画

DAO/链接表/ADO/ADP

DAO/链接表/ODBC

ADO/RDO

ADP

ActiveX/第三方控件/插件

Treeview树控件

ListView列表控件

Toolbar工具栏控件

微软其它控件

Dbi-Tech

CodeJock

Grid++Report

FastReport

ComponentOne

加载项/插件/Addin

OFFICE集成/导入导出/交互

Excel导入导出/交互

Word导入导出/交互

PPT交互

Outlook控制/邮件

Text文本文件/INI/CSV

PDF/SWF/XML格式

CAD格式

Sharepoint/其它Office

SqlServer/其它数据库

表

视图

存储过程/触发器

函数

用户/权限/安全

调试/维护

SqlServer其它/综合

发布/打包/文档/帮助

开发版/运行时

打包/发布/部署

开发文档/帮助制作

Access完整行业系统

采购管理系统

销售管理系统

仓库管理系统

人力资源管理HRM

CRM管理系统

MRP/ERP管理系统

BRP/流程优化

其它管理系统

心得/经验/绝招
其它/杂项
Excel技巧

Excel应用与操作

Excel开发编程

Word技巧

Word应用与操作

Word开发编程

Outlook技巧

Outlook应用与操作

Outlook开发编程

热门文章

  • 让标题栏文字置中
  • 如何设置表的字段默认值
  • 读取表中不重复的记录且显示..
  • Access中使用快捷方式..
  • 如何建立IP地址库并加以搜..
  • access实现自动编号从..

最新文章

  • Access用代码创建表
  • access表的设计技巧
  • access实现自动编号从..
  • Access2010出现“..
  • 使用输入掩码控制数据输入格..
  • 索引和主键的异同

联系方式

Access交流网(免费Access交流)

QQ:18449932 

网  址:www.access-cn.com

当前位置:首页 > 技巧 > 数据表 > 表设计
表设计

有效性规则相关技巧


概述

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

输入数据时,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 必须之前结束日期"。


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

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

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

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

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

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

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

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


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

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

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

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

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

< #01/01/2010年 #

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

> = #01/01/2010年 #

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


创建控件的有效性规则

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

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

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

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


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


有效性规则参考

有效性规则使用 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)”下,选择“此数据库”。



发布人:zstmtony  
分享到:
点击次数:  更新时间:2016-12-13 19:52:36  【打印此页】  【关闭】
上一条:Access字段有效性规则  下一条:Access自动更正惹的祸



相关文章

  • • Access用代码创建表
  • • access表的设计技巧
  • • access实现自动编号从1开始排序且不中断
  • • Access2010出现“错误一对多” 调试解决办法
  • • 使用输入掩码控制数据输入格式
  • • 索引和主键的异同
  • • “排队不长,只是很粗”——浅谈化宽为长
  • • Access数据表能做什么

热门文章

  • [2009-01-03] 用交叉表来反映帐龄的2种方法access数据库
  • [2006-11-24] 让标题栏文字置中access数据库
  • [2009-07-28] 调用access报表access数据库
  • [2005-03-25] 认识表access数据库
  • [2005-02-04] 如何隐藏/显示某个表或者其他数据库对象access数据库
  • [2004-08-18] 表的设计---数据的拆分access数据库

热门产品

公司动态|在线留言|在线反馈|友情链接|会员中心|站内搜索|网站地图

Access交流网 版权所有 1999-2018 粤ICP备10043721号

QQ:18449932

Access应用 Access培训 Access开发 Access平台

access|数据库|access下载|access教程|access视频|access软件

Powered by MetInfo 5.3.12 ©2008-2023  www.metinfo.cn