通过模块[VBA]获取表单字段值

时间:2011-04-11 07:38:20

标签: forms vba module

我有一个使用VBA构建的程序,可以访问。 我有一个带有字段chDate的表单,我需要在名为Global(不是类模块)的模块文件中获取字段的值。

我试图访问它,但我认为我得到空值,字符串。不是错误。 我不是VBA的专家,对我来说是新手(我有VBS经验)。

有人可以帮助我并告诉我如何通过模块文件访问表单字段的值?

谢谢!

3 个答案:

答案 0 :(得分:1)

如果您可以提供一些示例代码,它可能有助于我们尝试为您提供解决方案。

这可能有用:

Dim一个对象作为表单的一个实例,并将实例设置为一个新实例。这两行将做到这一点(假设表单称为frmForm

Dim theForm as frmForm
Set theForm = new frmForm

然后显示表单:

theForm.show

表单将获得焦点,因此您可以填充字段。此时,一旦表单隐藏,您的代码应该能够拉出字段:

var1 = theForm.txtFormField.Text

但是,如果您在代码中卸载表单,则与表单直接关联的所有变量都将丢失。在这种情况下,您可能希望遵循Oneide的示例,并将全局变量设置为表单字段的值。您可以在表单的一个事件处理程序中执行此操作。

答案 1 :(得分:0)

让我看看我能否回忆起我的访问日。在您的全局模块中,您应该访问表单字段,前缀为表单名称,即 var1 = Form1.txtFirmField.Text

答案 2 :(得分:0)

据我所知,你试图以错误的方式获取数据。

如果您尝试从标准模块获取表单数据,您的表单可能已经关闭,或者如果您没有将其作为受限制的窗口打开,则该值不会准备好了。

无论如何,如果你能解决上述所有困难,你可能会以非标准/正确的方式编码。

请记住,VBA是一种事件驱动的语言,你最好使用它的强项,而不是与它们作斗争。

最后一句话,如果这只是一个随意的编码,我建议你使用一个全局变量,并使de Code Behind Form 在控件的更改事件中设置它。

如果您不确定我的意思,请发表评论,我会尝试更好地解释。

而且,如果您不介意,请告诉我们您的起始代码,以获得更好的答案。