我有一个名为Frm_Dairy的表单和一个名为Frm_Bakery的表单
我在每个中都有一个包含值的字段。每种形式的字段名称都相同,但是以字母名称开头是ether Dairy或Bakery。
实施例: Frm_Dairy.Dairy_Sales 要么 Frm_Bakery.Bakery_Sales
我想执行此代码: M_Sales = Frm_Dairy.Dairy_Sales
这很容易,但如果我希望程序首先确定哪种形式是活动的呢?
M_Form =" Dairy" '在这种情况下
所以如果M_Form =" Dairy"代码将是: M_Code =" M_Sales = Frm _" &安培; M_Form& "" &安培; M_Form& " _Sales"
现在如何执行M_Code变量以将数据存储到M_Sales
中我希望我已经详细询问了这个问题并感谢你的帮助!
答案 0 :(得分:1)
要确定某个特定表单是否已打开,请考虑:
If CurrentProject.AllForms("Dairy").IsLoaded Then
...
ElseIf CurrentProject.AllForms("Bakery").IsLoaded Then
...
End If
您描述了需要引用字段,可能确实需要引用控件。
动态构造表单和控件引用的几种方法。一种是使用ActiveForm属性,假设您要寻址的表单具有焦点。
Debug.Print Screen.ActiveForm.Controls(Screen.ActiveForm.Name & "_Sales")
另一种方法是将表单名称作为procedure的字符串参数传递。
Debug.Print Forms(strForm).Controls(strForm & "_Sales")
如果控件没有表单名称前缀,则会更简单。