如何从类模块中获取当前活动表单的属性?

时间:2018-02-20 07:36:09

标签: vba ms-access access-vba

我目前有2个表单,其中包含一些List Box个记录,其中包含一些Text Box以允许用户输入。我有一个Command Button将数据输入插入到表中,然后我重新查询有界List Box获取更新的数据。

两种形式的功能代码是相同的,所以我喜欢减少尽可能多的重复代码,我基本上尝试做这样的问题:

How to get instance of actual form from MS Access in a Module (VBA)

我创建了一个类模块,尝试从当前活动表单中获取Text Box中的数据输入,并将每个Text Box的值存储在类的每个属性中,然后引用它我的表单On Click保存命令。

Option Explicit

Public number As String
Public name As String

Public Function getData()

    Dim frmCurrentForm As Form
    Dim frmName As String

    Set frmCurrentForm = Screen.ActiveForm
    frmName = frmCurrentForm.Name

End Function

我能够获取当前活动表单的名称,但不确定从何处获取表单的Text Box属性数据输入,例如,它被命名为textBox_Number和{{ 1}}?

上述问题的答案表明要做到以下几点:

textBox_Name

但是使用Public Sub mFormLoad(p_form As Form) 'do stuff with p_form end sub 对象来访问其属性,我只能找到p_form的通用属性,而不是与我的活动表单绑定的特定属性,即Form和{ {1}}。

对VBA编程不熟悉,有人可以指导我完成吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

使用Controls集合:

p_form.Controls("textbox_Number").Value应该引用文本框的值。

或者,您只能将特定表单作为参数:

Public Sub mFormLoad(p_form As Form_MyFormName)
    'do stuff with p_form
End Sub