|
只要能用表达式说明的有效性规则都可以写在公式、宏、过程里。
两列的准则:
private sub 列2_afterUpdate()
if 列1+列2<>100 then
msgbox "输入错误!。。。。"
me.列2.select
end if
end sub
也可以用Northwind.mdb的例子:
由于不同国家的邮政编码不一样,所以存储各个国家邮政编码的数据库不能只依靠简单的有效性规则来确保输入的邮政编码是正确的。
不过,可以通过创建事件过程首先检测“国家”控件上输入的国家名称,然后再检查“邮政编码”控件上输入的值是否符合该国的邮政编码特征。
首先,在“设计”视图中打开包含上述控件的窗体,然后将下面的 Visual Basic 代码添加到窗体的 BeforeUpdate 事件过程中,以根据“国家”控件的值和“邮政编码”控件的输入值长度显示不同的信息。
Private Sub Form_BeforeUpdate(Cancel As Integer)
Select Case Me![国家]
Case "法国", "意大利", "西班牙"
If Len(Me![邮政编码]) <> 5 Then
MsgBox "ostalCode must be 5 characters."
Cancel = True
End If
Case "澳大利亚", "新加坡"
If Len(Me![PostalCode]) <> 4 Then
MsgBox "ostalCode must be 4 characters."
Cancel = True
End If
End Select
End Sub注意 您应将 Visual Basic 代码添加到窗体的 BeforeUpdate 事件过程中,而不是控件的事件过程,因为有效性规则涉及窗体上两个不同的控件。
现在,向窗体上添加新的供应商时,Access 会在输入完新记录,但没有保存到“供应商”表之前运行有效性规则过程。如果满足过程中的任何一个条件,将显示相应的信息并且不保存记录。
|
|