如何刷新访问表单

问题描述 投票:0回答:6

我正在构建一个 MS Access 应用程序,其中所有表单都是模态的。但是,在表单中的数据发生更改后,我想用新的数据刷新该表单的父表单。有什么办法可以做到吗。进一步详细说明:

考虑有两种形式,形式A和形式B。两者都是模态形式。从表单 A 开始,我启动表单 B,现在表单 B 引起了用户的注意。但是在B表结束后,我想刷新A表,有办法吗?

vba ms-access refresh
6个回答
11
投票

您可以重新绘制和/或重新查询:

关于表格 B 的关闭事件:

Forms!FormA.Requery

你是这个意思吗?


7
投票

不,就像我想运行 Form_Load 表格A,如果可能的话

--瓦伦·马哈詹

通常的方法是将相关代码放在一个可以由两种形式调用的过程中。最好将代码放在标准模块中,但您也可以将其放在 Form a 中:

B 表格:

Sub RunFormALoad()
   Forms!FormA.ToDoOnLoad
End Sub

表格A:

Public Sub Form_Load()
    ToDoOnLoad
End Sub    

Sub ToDoOnLoad()
    txtText = "Hi"
End Sub

1
投票

“Requery”确实是您想要运行的内容,但您可以在 Form A 的“On Got Focus”事件中执行此操作。如果您的 Form_Load 中有代码,也许您可以将其移至 Form_Got_Focus。


1
投票

我建议您使用

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 字段)中引用它。 当您编辑学生时,您需要将他与不在您的学校表中的学校关联,等等


0
投票

可能没有必要全部完成,但已经足够快了......

Forms![high volume binlocation editor].Requery
Forms![high volume binlocation editor].Refresh
Forms![high volume binlocation editor].Repaint

-2
投票

刷新您需要输入的表单 - 我刷新 在点击按钮事件中

© www.soinside.com 2019 - 2024. All rights reserved.