我正在尝试编辑公司某人多年前建立的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
答案 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属性。