任务9 设置字段的有效性规则
任务描述
在表中添加或编辑记录时,某些字段的取值通常有一个有效范围。例如,如果成绩采用百分制,则向成绩表中添加记录时,成绩字段的值就只能是0~100 范围内的一个数字;如果小于0或大于100,就不是一个有效的字段值。通过设置字段的有效性规则可以设置对输入到字段的值的要求,如果 反了有效性规则,则可以通过有效性文本向用户显示出错信息。在本任务中,将对“成绩管理”数据库中部分字段设置有效性规则和有效性文本,这些字段包括“成绩表”中的“成绩”字段和“学生”表中的“出生日期”字段。
实现步骤
(1)在Access 2007中,打开“成绩管理”数据库。
(2)在“设计”视图中打开“成绩”表,然后选择“成绩”字段。
(3)在“字段属性”中选择“常规”选项卡,在“有效性规则”属性框中输入“>=0 And <=100”(其中“>=”表示大于等于;“<=”表示小于等于;“And”为逻辑运算符,表示两项同时成立时才符合有效性规则),此规则表示“成绩”字段的值就只能是0~100范围内的一个数字,既不能是 数,也不能超过100。
(4)在“有效性文本”属性框中输入“只能输入0~100 之间的数值!”,如图2.84所示。
图2.84 设置有效性规则和有效性文本
(5)切换到“数据表”视图,对有效性规则进行测试。当在“成绩”字段中输入超出0~100范围内的数值时,将弹出包含有效性文本的提示对话框,如图2.85所示。
图2.85 测试有效性规则
(6)在“设计”视图中打开“学生”表,选择“出生日期”字段,在“有效性规则”文本框中输入“<Now()”(其中Now()为VBA函数,用于获取计算机系统的当前日期和时间),在“有效性文本”文本框中输入“出生日期不能在未来!”,如图2.86所示。
图2.86 设置有效性规则和有效性文本
(7)切换到“数据表”视图,对有效性规则进行测试。当在“出生日期”字段中输入于当前日期的日期数据时,将弹出包含有效性文本的提示对话框,如图2.87所示。
图2.87 测试有效性规则
知识与技能
使用“有效性规则”属性可以指定对输入到记录、字段中的数据要求。当输入的数据反了有效性规则设置时,可以使用“有效性文本”属性指定要提示用户的消息。
若要设置“有效性规则”和“有效性文本”属性,可在设计视图中打开表,然后在“字段属性”中选择“常规”选项卡,并在“有效性规则”属性框中输入一个表达式(其最大长度是2048个字符),在“有效性文本”属性框中输入文本(其最大长度是255个字符)。
Access将根据字段的数据类型,自动检查数据的有效性。例如,在数值字段中不允许输入字母、标点等非数字字符。
如果只设置了“有效性规则”属性(没有设置“有效性文本”属性),则当 反了有效性规则时,Access将显示标准的错误消息。如果设置了“有效性文本”属性,所输入的文本将作为错误消息显示。如果为某个字段创建了有效性规则,则Access通常不允许Null值存储在该字段中。如果要使用Null值,必须将“Is Null”添加到有效性规则中,例如“<> 8 Or Is Null”,并确保“必填字段”属性已经设置为“否”。