MS 访问 Not In List 事件和子表单

Posted

技术标签:

【中文标题】MS 访问 Not In List 事件和子表单【英文标题】:MS access Not In List event and Subform 【发布时间】:2011-11-13 19:57:36 【问题描述】:

我在 ms access 2003 中创建了一个调查表,其中有一个主表和来自 3 个不同表的两个子表。在主表单上有一个用于患者 ID 的组合框和用于注册日期的日期字段。当患者 ID 不在列表中时,事件触发并出现一个弹出表单,我可以在其中填写新 ID 和日期的详细信息,并且该新 ID 将在所有 3 个表中创建记录。我的问题是在关闭弹出表单后,组合框确实显示了新数据-ID,但与新 ID 相关的子表单没有更新或刷新,也没有显示新 ID。我需要关闭主表单并重新打开,然后我可以选择新的患者 ID,该 ID 也将显示在子表单上。可以对此进行编程,以便我不必关闭表单吗?帮助将不胜感激。

【问题讨论】:

【参考方案1】:

您可以通过在表单的 VBA 代码中执行以下命令来手动重新填充代码中的所有控件:

Me.Requery

只要您的表单打开,您就可以通过 AllForms 集合访问该表单。因此,在您的弹出表单中,您只需在 OnClose 事件中编写以下代码

Forms("NameOfYourMainForm").Requery

【讨论】:

对不起 Alaudo 我试过了,但显示错误子或未定义函数。为什么要在 Requery() 后面加上括号? 它显示编译错误子或未定义函数。 Private Sub Command6_Click() On Error GoTo Err_Command6_Click 'Forms!MainForm!MaleTableSubform.Form.Requery AllForms(MainForm).Requery DoCmd.Close Exit_Command6_Click: Exit Sub Err_Command6_Click: MsgBox Err.Description Resume Exit_Command6_Click End Sub 我将所有表单更改为表单,现在当单击关闭命令时它会询问我是否要添加数据,当回答是时它会关闭主表单,在我再次单击关闭按钮后它会关闭弹出表单。 您不会忘记在引用表单时使用引号吗?不是 'Forms(MainForm)' 而是 'Forms("MainForm")'。 嗨 Alaudo 很抱歉,但仍然拒绝工作。你有示例数据库吗?

以上是关于MS 访问 Not In List 事件和子表单的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL 'NOT IN' 和子查询

PostgreSQL 'NOT IN' 和子查询

MS 访问事件加载表单

MS Access - 基于同一张表但不同记录的表单和子表单

如何确保 MS Access 中的有界表单和子表单仅在单击按钮后提交到数据库?

iterator not dereferencable问题