【发布时间】:2010-08-16 03:41:19
【问题描述】:
我试图将全局变量的名称传递给子例程,并想知道如何引用它。例如,我可以使用控件执行以下操作:
Private Sub passCtrlName(ctlName as String)
Me.Controls(ctlName) = "Whatever"
End Sub
编辑:
举例
Public imGlobVar As String
Public Sub passGlobVar(frm as Form, ctlName as String, globVar as String)
frm.Controls(ctlName) = globVar
End sub
并将其称为 私有子 imaButton_Click() imGlobVar = "某事" 调用 passGlobVar(Me , txtBox1, imGlobVar) 结束子
第二次编辑:
看来我肯定是在这里找错了树,所以我将解释我想要实现的目标。
我有一个表单,其中包含用户(风险)地址的文本框,顶部有一个复选框,允许用户选择此地址与系统上已有的“联系人”详细信息相同,并且文本框是锁定。
填充文本框很好并且有效。我使用全局变量的目的是为了提高可用性(尽管有一点点)。 用户可以添加新的详细信息,如果他们点击“与联系人相同”复选框,他们输入的详细信息将存储在全局变量中,每个控件都有一个。
如果用户打错了复选框,他们并没有丢失这些值,并且通过取消选中该框,输入的值将被返回。 我希望创建一个子例程,我可以在其中传递全局变量和控件的名称并调用此例程,而不是为每个控件编写它。
我有一种感觉,我可能使用了错误的技术来实现我的目标。但在回答我最初的问题时,您似乎无法以我希望的方式将全局变量传递给子例程。
【问题讨论】:
-
在我看来,您可能会考虑在表单级别使用内存结构,例如保存相关字段原始值的 snapshop 记录集。在这种情况下,全局变量显然是错误的范围。您最终使用的任何数据结构是否需要公开尚待确定。如果您在子表单中需要它并且它将在父表单中定义,那么如果您从子表单中使用它,则它需要是公共的。但这与 GLOBAL 非常不同。
标签: ms-access vba ms-access-2007