MS Access中的验证规则文本

时间:2013-09-10 16:15:55

标签: vba ms-access ms-access-2007 ms-access-2010

在MS Access中,我有一个包含两个字段的表:ID(自动编号)和SerialNumber(文本)。 序列号应仅包含唯一值,因此我将其设置为索引:是(无重复)。 现在,当我尝试在SerialNumber字段中输入两个相同的值时,它会向我显示一些标准错误消息。我需要向用户显示自定义消息,例如:“序列号应该是唯一的!”。 我将该消息添加到“验证文本”但它没有帮助,它仍然显示标准的Access错误消息。有谁知道如何显示自定义错误消息?

1 个答案:

答案 0 :(得分:0)

索引约束会覆盖验证规则。

您可以使用DLookup来逃避验证规则 - 但我强烈反对它,因为它会严重影响您的数据库性能。

更好的选择是使用VBA捕获错误,然后发出自己的自定义错误消息。

如果您使用MS-SQL作为数据库后端(它听起来不像您),您还可以自定义返回的错误消息。

Private Sub Form_Error(DataErr As Integer, Response As Integer)
  Select Case DataErr
    Case 3022 ' Duplicate Value Detected
      MsgBox "That Serial Number already Exists.", vbOkayOnly
      Response = acDataErrContinue
  End Select
End Sub

这会捕获表单上的所有错误,并查看错误是否为重复值。如果是,则向用户显示一个消息框,告知序列号已存在 - 然后正常进行。