如何在vba函数中打开另一个表单并返回到该函数

时间:2014-01-18 04:55:58

标签: function vba ms-access

我有一个带有按钮的MS Access表单,该按钮调用一个函数,该函数以检查日期开始,并询问用户是否需要手动更改日期。如果是这种情况,则会打开另一个表单,输入并验证日期。是否有可能将所选日期加载到变量中并将第一个表单返回到正在运行的函数中以便在该过程中进一步使用它?

1 个答案:

答案 0 :(得分:1)

以下方法对我有用,虽然我认为有更好的方法。 首先,我插入了一个模块并声明了一个全局变量:

Global globalText As String

然后你需要确保另一个表单(这里是frmEntry)被称为“modal”,这样你的代码就会等到表单再次关闭。你可以通过以下方式实现这一目标:

DoCmd.OpenForm "frmEntry", WindowMode:=acDialog

在frmEntry中,您需要将所选的任何值写入全局变量,然后关闭表单,如下所示:

Private Sub btnClose_Click()

    globalText = Me.txtEntry.Value
    DoCmd.Close acForm, "frmEntry"

End Sub 

然后它基本完成,你的基本表单中的代码将继续运行,你可以在任何地方使用globalText中的值,或者可以将它写入一些隐藏的textBox,以便稍后在其他函数中使用它。