我正在构建一个 MS Access 应用程序,其中所有表单都是模态的。但是,在表单中的数据更改后,我想用更新的数据刷新此表单的父表单。有没有办法做到这一点。进一步阐述:
考虑有两种形式,形式 A 和形式 B。两者都是模态形式。从Form A,我发起Form B,现在Form B得到了用户的关注。但是在表格B结束时,我想刷新表格A。有没有办法做到这一点?
您可以重新绘制和/或重新查询:
关于表格 B 的关闭事件:
Forms!FormA.Requery
你是这个意思吗?
不,这就像我想运行 Form A 的 Form_Load,如果可能的话
——瓦伦·马哈詹
执行此操作的常用方法是将相关代码放在可以由两种形式调用的过程中。最好将代码放在标准模块中,但您可以将其放在 Form a 中:
表格 B:
Sub RunFormALoad()
Forms!FormA.ToDoOnLoad
End Sub
表格 A:
Public Sub Form_Load()
ToDoOnLoad
End Sub
Sub ToDoOnLoad()
txtText = "Hi"
End Sub
“重新查询”确实是您想要运行的内容,但您可以在 Form A 的“On Got Focus”事件中执行此操作。如果您的 Form_Load 中有代码,也许您可以将其移至 Form_Got_Focus。
我建议您使用REQUERY
您已更改其数据的特定组合框,并且您在Cmd.Close
语句之后执行此操作。这样,如果您正在输入数据,也会要求该数据。
DoCmd.Close
Forms![Form_Name]![Combo_Box_Name].Requery
您可能还想指向最近更改的值
Dim id As Integer
id = Me.[Index_Field]
DoCmd.Close
Forms![Form_Name]![Combo_Box_Name].Requery
Forms![Form_Name]![Combo_Box_Name] = id
此示例假设您打开了一个表单以将数据输入到辅助表中。
假设您将 School_Index 和 School_Name 保存在 School 表中,并在 Student 表(仅包含 School_Index 字段)中引用它。在编辑学生时,您需要将他与不在您的学校表中的学校相关联,等等
to refresh the form you need to type - me.refresh in the button event on click