【问题标题】:Complex validation rule in Microsoft accessMicrosoft access 中的复杂验证规则
【发布时间】:2014-10-04 00:46:48
【问题描述】:

我想在 Microsoft 访问中有一个复杂的验证规则。该字符串应为 9 位数字,并使用以下公式进行验证。

例如,如果字符串是 ABCDEFGHI:

(9 x A) + (8 x B) + (7 x C) + (6 x D) + (5 x E) + (4 x F) + (3 x G) + (2 x H) + (-1 x I) % 11 == 0。

我可以将其用作验证规则还是应该使用代码?如果我必须使用代码,我该怎么做?

【问题讨论】:

  • 你没有给我们太多的工作机会。这是在文本框中输入的吗?你是用数字乘以字符吗?
  • 如果可能,请对此进行扩展。您输入的字符串 (ABCDEFGHI) 应该是数字吗?您不能将一个字母乘以 9 次,除非您的意思是您希望该字母出现 9 次?您是否从文本框中获取此字符串?这里有很多的困惑,如果你想要一个答案,我们需要继续。
  • 是的,它是在表单的文本字段中输入的。字母代表数字。

标签: validation ms-access


【解决方案1】:

如有必要,我稍后会尝试进行此编辑,但我将不得不做出几个假设,因为问题中的信息并不明确。

假设您将这个 9 位数字输入到文本框中。我会把它放在文本框的 AfterUpdate 事件中:

Val1 = CInt(Left(MyTextBox.Text, 1)
Val2 = CInt(Mid(MyTextBox.Text, 2, 1)
Val3 = CInt(Mid(MyTextBox.Text, 3, 1)
Val4 = CInt(Mid(MyTextBox.Text, 4, 1)
Val5 = CInt(Mid(MyTextBox.Text, 5, 1)
Val6 = CInt(Mid(MyTextBox.Text, 6, 1)
Val7 = CInt(Mid(MyTextBox.Text, 7, 1)
Val8 = CInt(Mid(MyTextBox.Text, 8, 1)
Val9 = CInt(Rightt(MyTextBox.Text, 1)

If ((9 x Val1) + (8 x Val2) + (7 x Val3) + (6 x Val4) + (5 x Val5) + (4 x Val6) + 
    (3 x Val7) + (2 x Val8) + (-1 x Val9) % 11) = 0 Then
  'Whatever it is you want to do
Else
  'Whatever should be done if the validation fails
End If

这将使您能够根据 If/Then 语句的结果更好地控制您可能想要执行的消息和功能。

【讨论】:

    猜你喜欢
    • 2015-05-22
    • 2023-03-29
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多