[英]MS-Access form: weird behavior
我有一个绑定窗体,其中一个子窗体绑定到另一个recordSource,尽管这些recordSources可以通过字段链接。
我的主窗体中有一个未绑定的文本框控件,还有一个按钮控件,在其OnClick事件上附加了自定义vba代码。
我想要实现的是这样的:(伪代码以便于阅读)
private sub button_Click()
'Find the record with the content of the text-box control as its value in FieldA
find(mainForm.RecordSource, fieldA, text-box.value)
if not found then
'Create a record in the subform.recordSource with PK value = text-box.value
createDefaultRecord(subform.Form.RecordSource,text-box.value)
end if
'load the values in the record in the main record source onto the record in the subform recordSource
Me!subform.Form.value = mainForm.recordThatMatched.value
Exit Sub
实际上我得到它的工作,但有一个小麻烦:如果我介绍,目前尚未产生其纪录 subform.RecordSource 代码 ,它创建它,然后加载失败 , 但如果你尝试加载不同的代码或关闭表单 ,然后重新加载第一个代码 , 这很有效!
是否知道为什么会发生这种情况或如何为这种情况编写变通办法? 真的让我烦恼。 我曾尝试在加载记录之前运行acSaveRecord
和acSave
,但是结尾保持不变:如果不先浏览主窗体的记录,就无法在子窗体上加载最近创建的记录(这有点愚蠢且违反直觉)
我的诊断可能有误,也可以指出这一点。 我在Access和VBA方面没有太多经验。
解决方案是添加以下内容:
Me!subform.Form.Requery
添加记录后。
表单(或子表单)除非重新查询(手动使用Shift + F9或通过代码),否则不会在其记录源中显示新添加的记录。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.