DBMNG数据库管理与应用

科学是实事求是的学问,来不得半点虚假。
当前位置:首页 > Access > 技术手册

5.5验证数据输入

如果数据库对你或者你的公司颇有价值的话,那么在表中输入的数据必须正确。即便是最
为熟练的数据录入人员偶尔也会输入不正确的信息。为了添加简单的测试以验证数据项的合理
性,可以通过在“表设计”视图“常规”页的“字段属性”窗格中添加一个短表达式作为有效
性规则。如果所输入的数据不能够满足你的有效性规则,便会出现一个消息框通知录入人员违
反了有效性规则。对数据进行验证可以维护表的域完整性。
表达式是计算机程序设计的核心元素。 A c c e s s使得创建表达式变得十分简单,并不需要你
是一个程序员,当然如果熟悉程序设计语言肯定是有帮助的。表达式使用的是人们所熟悉的算
术符号 +、-、* (乘)和 / (除)。这些符号叫做操作符,因为它们操作 (使用)位于其前或其后的
值。这些操作符在V B A中是保留符号。操作符所操作的值叫做操作数。
也可以使用操作符比较两个值; < (小于) 和 > (大于)符号是操作符中用于比较的例子。A n d、
O r、I s、N o t、B e t w e e n和L i k e叫做逻辑操作符。比较和逻辑操作符返回的值只有 Tr u e、F a l s e和
未知( Null 值)。&操作符用于将两个文本项(字符串或者就是串)合并为一个(字符)串 (在
A c c e s s中,可以用 + 来连接两个字符串,但是 &是首选的符号,因为它不会对进行的操作产生
异义。使用+ 操作符时,在处理数字和字符串上无论对 A c c e s s还是用户都有可能产生混淆,因
为到底是连接还是算术加不是一目了然的)。能够称得上一个表达式,至少需要包含一个操作
符。根据每个操作符所涉及到的规则,将不同的操作符组合在一起,便可以构造出复杂的表达
式。这些规则的集合称为操作符语法。
如果想要学习Access 操作符更多的知识,请参见9 . 2节“理解表达式中的元素”。
数据有效性规则所使用的表达式其结果值为两个值之一: Tr u e或者F a l s e。如果验证的结果
为真则在数据单元格中输入的数据将会被接受;如果为假,该数据将被拒绝。如果数据被有效
性规则拒绝,则你在“有效性文本”属性中输入的文本将出现在消息框中。第 9章将详细介绍
A c c e s s有效性表达式的语法。
5.5.1 添加字段级有效性规则
限制了在字段中输入的值并且只基于一个字段的有效性规则叫做字段级有效性规则。表 5 -
6所列出了在第4章中Personnel Actions表的某些字段上所使用的一些简单的字段级有效性规则。
提示 使用In操作符可以简化带有多个Or 操作符的表达式。例如,可以把paType字段的有效性规
则属性值替换为In(“H”,“S”,“Q”,“Y”,“B”,“C”),它使用的字符更少一些。
在现在的窗体中,字段的雇员I D编号有效性规则并不能保证输入的一定是一个有效的 I D编
号。你可以输入一个比公司中雇员总数还大的数字。 p a I D字段的有效性规则将测试 E m p l o y e e s
116 第一部分 Access基础 下载表的E m p l o y e e I D数字字段检查p a I D编号是否存在。你不需要创建这个测试,因为参照完整性
规则将为你执行这个有效性验证。 p a I n i t i a t e d B y和p a A p p r o v e d B y的有效性规则需要基于
E m p l o y e e s表中条目进行测试。
表5-6 Personnel Actions表中字段上使用的有效性规则
字 段 名 有效性规则 有效性文本
p a I D > 0 请输入一个有效的I D编号
p a Ty p e “H” Or “S” Or “Q” Or 只有H、S、Q、Y、B和C是可以被接受的
“Y” Or “B” Or “C”
paInitiated By > 0 请输入一个有效的总监I D编号
p a S c h e d u l e d D a t e Between Date()-3650 And Date()+365 计划日期不能在1 0年之前和一年之后
p a A p p r o v e d B y >0 Or Is Null 输入一个有效的经理I D编号或者如果没被批
准则保留为空白
p a R a t i n g Between 0 And 9 Or Is Null 等级范围从0(用于终止雇用关系的雇员)、1
到9或者为空白
p a A m o u n t 无 无
p a C o m m e n t s 无 无
如果需要复习一下关系型引用规则,请参见4 . 1 0 . 2节“实施参照完整性”。
向Personnel Actions表添加有效性规则时,可以遵循如下步骤:
1) 如果Personnel Actions表没有被打开的话,在“数据库”窗口中双击其名字将之打开。
2) 单击“设计视图”按钮,返回 “设计”模式。选定p a I D字段。
3) 按下F 6,切换到“字段属性”窗口,然后移到“有效性规则”文本框。
4) 输入 > 0并移到“有效性文本”文本框。
5) 键入“Please enter a valid employee ID”。该文本当长度超过了文本框的显示能力之后将
向左滚动。要显示文本的开头时,按下 H o m e。按下E n d将会把插入符放在最后一个字符后面。
按下E n t e r结束该操作。
6) 在必填字段中输入“是”,或者从下拉列表中选择“是”。图5 - 3所示为“字段属性”文
本框中的输入。

图5-3 字段属性文本框,显示的是第一个有效性输入
7) 按下F 6,切换到“表”设计网格。移到下一个字段并按下 F 6。
第5章 输入、编辑和验证表中的数据 117 下载8) 重复步骤2到5,按表5 - 6中列出的内容为其余的6个需要进行有效性验证的字段输入有效
性规则和有效性文本。方括号 ( [ ] )用于包含那些有标点符号和空格的字段名。在“必填字段”
文本框中为p a Ty p e、p a I n i t i a t e d B y和p a S c h e d u l e d D a t e字段输入“是”。
我们将在后面的“输入Personnel Actions表数据和测试有效性规则”一节中测试所输入的
有效性规则。


5.5.2 添加表级有效性规则和使用表达式生成器
字段 p a E ff e c t i v e D a t e需要一个基于
p a S c h e d u l e d D a t e值的有效性规则。人事部
操作的有效日期不应该在最终导致该操作
的评论所预定的日期之前。在Access 2000
中不能在有效性规则表达式中引用其他的
字段名 ;添加这样的有效性规则可以在
“表属性”窗口中完成。在有效性规则中,
如果一个字段的值依赖于前面在当前记录
中另一个字段中所输入的值,则称为表级
有效性规则。

遵照如下步骤,为 p a E ff e c t i v e D a t e字
段创建一个表级有效性规则:
1) 单击“属性”工具栏按钮,显示出
“表属性”窗口 (见图5 - 4 )。
2) 在“说明”文本框中输入P e r s o n n e l
Department Actions (见图5 - 4 )。
3) 在“有效性规则”文本框中,单击
“省略号”按钮,显示“表达式生成器”
对话框 (见图 5 - 5 )。当前的表 P e r s o n n e l
A c t i o n s,在左边的列表中是被选中的,而
该表的字段显示在中间的列表中。

4) 双击中间列表中的 p a E ff e c t i v e D a t e
将[ p a E ff e c t i v e D a t e ]放到该对话框上方的
“表达式生成器”文本框中。
5) 在文本框中输入 > =,双击中间列
表中的p a S c h e d u l e d D a t e将[ p a S c h e d u l e d
D a t e ]添加到该表达式。

6) 如果人员操作的有效日期没有被安排,则接受一个空白输入,添加Or [paE ffectiveDate] Is Null到该表达式中。表达
式看上去如图5 - 5。
7) 单击“确定”,添加这个表级有效性规则并关闭“表达式生成器”对话框。
8) 在“有效性文本”文本框中,输入E ffective date must be on or after scheduled date。这时
的“表属性”窗口如图5 - 6所示。

9) 单击“表属性”窗口的“关闭窗口”按钮或者单击工具栏上的“属性”按钮,关闭该
窗口。



本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号