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

Forms 通过模块[VBA]获取表单字段值,forms,vba,module,Forms,Vba,Module,我在access中有一个用VBA构建的程序。 我有一个带有字段chDate的表单,我需要在名为Global(而不是class module)的模块文件中获取该字段的值 我试图访问它,但我想我得到了空值,字符串。不是错误。 我不是VBA方面的专家,这对我来说是新的(我有VBS方面的经验) 是否有人可以帮助我并告诉我如何通过模块文件访问表单字段的值 谢谢 让我看看是否能回忆起我的访问时间。在您的全局模块中,您应该访问以表单名称为前缀的表单字段,即。 就我所知,您试图以错误的方式获取数据 每当您试图从

我在access中有一个用VBA构建的程序。 我有一个带有字段chDate的表单,我需要在名为Global(而不是class module)的模块文件中获取该字段的值

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

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


谢谢

让我看看是否能回忆起我的访问时间。在您的全局模块中,您应该访问以表单名称为前缀的表单字段,即。
就我所知,您试图以错误的方式获取数据

每当您试图从标准模块中获取表单数据时,,您的表单可能已经关闭,或者,如果您不是将其作为受限窗口打开,则该值尚未准备就绪

无论如何,如果你能克服以上所有的困难,你可能是在用一种不标准/正确的方式编码

请记住,VBA是一种事件驱动的语言,您最好利用它的优势,而不是与之对抗

最后一句话,如果这只是一个随意的编码,我建议您使用一个全局变量,并在窗体的更改事件上设置de代码

如果你不确定我的意思,请留下评论,我会尽量解释得更好


如果您不介意,请让我们了解更多有关您的起始代码的信息,以获得更好的答案。

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

以下是可能有效的方法:

Dim
将对象作为窗体的实例,并将该实例设置为新实例。这两行就可以做到这一点(假设表单名为
frmForm

然后显示该表格:

theForm.show
表单将获得焦点,因此您可以填充字段。在这一点上,一旦表单被隐藏,您的代码就应该能够按如下方式提取字段:


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

这给了我一个错误:error 424:Object Required。我还尝试访问字段值,如下所示:Forms![cdform]![chDate]我得到了这个错误:错误2427“您输入了一个表达式,thacccat没有值。”谢谢。我尝试了您的代码(我的表单名是lstVisits):公共函数ShowVisitsDate()As Date Dim theForm As lstVisites Set theForm=New lstVisites theForm.Show End函数但我得到一个错误:编译错误:用户定义的类型未在第一行和第二行定义(在表单名称:lstVisits上)谢谢。
theForm.show
var1 = theForm.txtFormField.Text