繁体   English   中英

MS-Access形式:奇怪的行为

[英]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 代码 ,它创建它,然后加载失败如果你尝试加载不同的代码或关闭表单 ,然后重新加载第一个代码这很有效!

是否知道为什么会发生这种情况或如何为这种情况编写变通办法? 真的让我烦恼。 我曾尝试在加载记录之前运行acSaveRecordacSave ,但是结尾保持不变:如果不先浏览主窗体的记录,就无法在子窗体上加载最近创建的记录(这有点愚蠢且违反直觉)

我的诊断可能有误,也可以指出这一点。 我在Access和VBA方面没有太多经验。

解决方案是添加以下内容:

Me!subform.Form.Requery 

添加记录后。

表单(或子表单)除非重新查询(手动使用Shift + F9或通过代码),否则不会在其记录源中显示新添加的记录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM