Access 2016 表单控件验证规则未触发
Posted
技术标签:
【中文标题】Access 2016 表单控件验证规则未触发【英文标题】:Access 2016 Form Control Validation Rule Not Firing 【发布时间】:2016-08-04 05:28:23 【问题描述】:我有一个简单的未绑定访问 2016 表单。在表单上,我有几个控件,包括文本和组合框。在第一个文本框控件上,我想要求一个数据值(基础表字段数据类型是短文本)。
我已将属性表中控件的 Validation Rule 属性设置为“Is Not Null”,并添加了适当的验证文本消息。
由于未知原因,我一直无法触发此验证规则。我已经清除了表格上的验证规则,以确保它没有干扰,但是,没有运气。
就像焦点离开控件时没有进行验证检查一样。也没有其他事件过程会干扰。
感谢您的帮助。
【问题讨论】:
只要不更改控件,就不会触发验证。我建议在表单级别使用 before_update 事件来检查您的控件是否为空。 谢谢 Rene,我实际上没有意识到除非有变化,否则验证不会被触发。在查看更新前的事件时,它们有相同的问题,除非发生更改,否则它不会触发。我的愿望是在用户退出控件时触发验证规则。看起来 John Fowler 可能有解决方案,或者我可以随时控制退出事件过程。 【参考方案1】:你可以给控件一个默认值,然后
Form_load()
Yourcontrol.setfocus
Sendkeys "DEL"
【讨论】:
我想我会在控制 OnExit 过程中处理这个问题。 Sendkeys del 触发 numlock 开/关切换,所以这不起作用。【参考方案2】:要求是在控件失去焦点时使用验证规则验证控件是否存在缺失值(即用户在没有输入值的情况下从文本框跳出)。我希望用户能够立即获得反馈,即他们需要为给定控件提供值。
正如 Rene 在 cmets 中指出的那样,除非值发生变化,否则验证规则不会触发。
Sendkeys 解决方案有问题,我只使用 Sendkeys 作为最后的手段。
这种情况下的解决方案是将验证测试放在 Control_OnExit 事件处理程序中。用户可以根据需要立即获得反馈,并且不会等到提交记录。
还有一个很容易被忽略的注意事项; 在未绑定的形式中,before_update 事件永远不会触发。
【讨论】:
以上是关于Access 2016 表单控件验证规则未触发的主要内容,如果未能解决你的问题,请参考以下文章