Validation MS Access:阻止验证子窗体

Validation MS Access:阻止验证子窗体,validation,ms-access,vba,subform,Validation,Ms Access,Vba,Subform,在激活子窗体时,我正在努力解决验证规则的意外触发问题 在MS Access中,我有一个包含患者数据的表单,其中包含一个子表单,其中包含一条属于该患者的医疗设备记录。患者表有一个[ID]字段,医疗设备表有一个[PatientID]字段。医疗设备表与患者表具有一对多关系(一个患者可以拥有多个医疗设备) 打开包含子表单的表单时,子表单的form\u Load()方法将填充某些字段,例如当前日期 问题是:一旦子表单的任何控件被激活(通过选项卡或单击),医疗设备表的验证规则就会被触发——一次,而且只有一次

在激活子窗体时,我正在努力解决验证规则的意外触发问题

在MS Access中,我有一个包含患者数据的表单,其中包含一个子表单,其中包含一条属于该患者的医疗设备记录。患者表有一个[ID]字段,医疗设备表有一个[PatientID]字段。医疗设备表与患者表具有一对多关系(一个患者可以拥有多个医疗设备)

打开包含子表单的表单时,子表单的
form\u Load()
方法将填充某些字段,例如当前日期

问题是:一旦子表单的任何控件被激活(通过选项卡或单击),医疗设备表的验证规则就会被触发——一次,而且只有一次。在取消验证错误消息后,我可以在父窗体和子窗体上的控件之间切换,而不会出现问题

当我从
Form\u Load()
方法中删除代码时,我可以在不触发验证的情况下激活子窗体的控件

父窗体和子窗体都链接到表,而不是查询


如何使用VBA在不触发验证的情况下填写子窗体中的数据?

我建议您使用默认值,而不是实际文本。只有在其他字段完成时,默认值才会变为“真实值”。

谢谢您的建议!供将来参考:不能对表字段的默认值使用用户定义的函数;但是可以使用用户定义的VBA函数作为表单的默认值,所以这就是我最后要做的。