基于另一个字段的MS Access验证规则

时间:2018-04-04 13:29:03

标签: ms-access

我正在尝试编辑公司某人多年前建立的MS Access拆分数据库(前端表和后端表)。我对Access不太熟悉。

我们正在尝试添加验证规则,以限制用户输入会导致超出容差部分的数据。我可以使用一个简单的验证规则,除了有一个具有不同容差的零件号。

有没有办法通过VBA创建验证规则或代码,根据表单中已输入的不同数字限制您可以放入字段的内容?例如,如果用户在顶部的Shell P / N字段中输入具有不同容差“XXXXX”的特定部件号,则可以使底部的Gage Read Field从限制为< =。 04到< =。035以满足不同的公差?

编辑:尝试代码。

Private Sub Shell_PN_AfterUpdate() 
Dim Shell_PN As Long 
Dim Gage_Limit As Long 
Shell_PN_AfterUpdate() = Me.Shell_PN 
If Shell_PN = 463413 Then 
    Gage_Limit = 0.035 
ElseIf Shell_PN <> 463413 Then 
    Gage_Limit = 0.04 
End If 
If Me.Ctl1_Gage_Reading_AfterUpdate() > Gage_Limit Then 
    MsgBox ("Crown Heigh is Out of Tolerance") 
    Cancel = True 
End If 
End Sub

Form Display

1 个答案:

答案 0 :(得分:0)

将AfterUpdate事件设置为等于值是没有意义的。删除该行。无需声明变量,只需引用字段或控件名称。

Private Sub Shell_PN_AfterUpdate() 
    If Me.Shell_PN = 463413 Then 
        Me.Gage_Limit = 0.035 
    ElseIf Shell_PN <> 463413 Then 
        Me.Gage_Limit = 0.04 
    End If 
End Sub

然后在其BeforeUpdate事件中验证Gage Reading输入。同样,调用AfterUpdate事件毫无意义。

Private Sub Ctl1_Gage_Reading_BeforeUpdate(Cancel As Integer)
    If Me.Ctl1_Gage_Reading > Me.Gage_Limit Then 
        MsgBox ("Crown Height is Out of Tolerance") 
        Cancel = True 
    End If 
End Sub

或者代替BeforeUpdate事件使用ValidationRule和ValidationText属性。