表单转换和数据刷新

时间:2013-07-23 21:15:14

标签: ms-access access-vba

我有一个带按钮的表单,当我按下它时,它会打开另一个表单。当我关闭第二个表单时,我需要刷新第一个表单。

所以我需要在全局变量中插入第一个表单名称,以便从第二个表单中访问表单名称以刷新第一个表单。

我尝试创建这个:

global formname as form

formname = activeform.name

但是我收到一条错误说:该选项是只读的。

3 个答案:

答案 0 :(得分:3)

在按钮的Click事件中,您可以将表单名称作为OpenArgs的{​​{1}}属性传递。

DoCmd.OpenForm

在第二个表单的Private Sub Command4_Click() DoCmd.OpenForm "frmStaff", , , , , , Me.Name End Sub 事件中,您可以检查此(字符串)值:

Close

答案 1 :(得分:3)

为什么不直接进入后面的VBA代码并使用close sub刷新它?我不明白是否需要在表单之间传递全局变量 - 您应该能够以第二种形式执行此类操作:

Private Sub Form_Close()
     Form_YourFormHere.Refresh
End Sub

答案 2 :(得分:0)

如果您必须使用此方法,请在第一个表单的模块中尝试:

Public formname as Form

Private Sub Command1_Click()
    Set formname = Me
End Sub

Public formname as String

Private Sub Command1_Click()
    formname = Me.name
End Sub

表单是对象类型,只能使用Set语句分配给变量,否则VBA会认为您正在尝试将对象的值赋给变量。

你说你想要表单 name ,但你的变量是Form类型,而不是String。第一个代码片段将实现出现要实现的结果,第二个代码片段将实现您想要实现所说的结果。

但是,不同的方法可能会更好,更可靠。