【发布时间】:2016-04-16 00:09:56
【问题描述】:
我在我管理的数据库中的一个表上使用了一些简单的验证规则(如果有帮助的话,它目前是 ANSI-89)。例如,其中一个内容如下:
Like "#" Or Like "##"
据我了解,这应该允许任何一位数或两位数(1、2、35、00、99 等)。但是,在字段中输入“1”会被拒绝,并且验证规则会不断提示输入正确,因为它是必填字段。
同样,更重要的是,我还有另一个经过验证的字段:
Like "######?"
“201620A”应该是有效的(您可能会猜到该字段的数据部分基于年份)。而且,虽然不是真实数据,但也应该接受“123456Z”。尽管如此,两者都被拒绝了。
因为它们是必填字段,所以我无法保存记录...通常。奇怪的是,我有时能够成功保存记录。即,它的行为不一致。
我很困惑。我希望保留验证规则,因为这些字段是必不可少的,并且我想至少进行一些基本检查以确保它们已正确输入。我意识到我必须忽略一些简单的事情......
【问题讨论】:
-
这些验证规则适用于我在 ACCDB 格式数据库中使用 Access 2010 的文本字段,32 位应用了所有 Office 和 Windows 更新。所以我不明白为什么他们不为你工作。我会尝试紧凑和修复,但不相信这是答案。
-
我建议在
BeforeUpdate表单事件中进行验证,而不是表级验证,它会给你更多的灵活性 -
感谢两位的回复。无论是在表格中还是在表格中,这种情况一直在零星地发生。我已经尝试过 Compact & Repair,看看是否有帮助。它似乎已经修复了它......但只有时间会证明一切。最后一个想法 - 表中的某些记录包含这些字段的无效数据。这会导致任何问题吗?
-
HansUp,您的建议可能已经解决了问题。上周我运行了compact & repair,从那以后没有出现任何错误。我将在接下来的一周左右密切关注它,如果一切顺利,我会认为它已解决。您是否愿意重新发布您的评论作为答案,以便在这种情况下我可以接受?
-
@HansUp,我可以确认问题已解决,而且似乎是由于您的解决方案。我想给你适当的信任,所以请在你有时间的时候发布一个答案!
标签: validation ms-access ms-access-2013 validationrules