使用表单名称创建封闭表单的新表单实例的代码
我想用变量替换长的选择案例列表。
模块完整代码
在 Access 2010 中,我有一个 VBA 函数,当给定包含表单名称的字符串时,该函数会打开表单的新实例。通过将表单变量“frm”添加到集合中:
mcolFormInstances.Add Item:=frm, Key:=CStr(frm.Hwnd)
我能找到打开“frm”的唯一方法是使用我手动输入的 Select Case 语句。
Select Case strFormName
Case "frmCustomer"
Set frm = New Form_frmCustomer
Case "frmProduct"
Set frm = New Form_frmProduct
... etc ... !
End Select
我希望它自动执行此操作,有点像这样(尽管这不起作用):
Set frm = New Eval("Form_" & strFormName)
或者通过一些代码:
For Each obj In CurrentProject.AllForms 'or AllModules, neither work
If obj.Name = strFormName Then
Set FormObject = obj.AccessClassObject 'or something
End If
Next
Set frm = New FormObject
我只是想避免列出项目中的每个表单,并且必须在添加新表单时保持列表更新。
我自己也做了一些测试,并在网上阅读了一些相关内容。据我所知,如果不使用 DoCmd.OpenForm,则不可能使用表示表单名称的字符串创建新的表单对象并将其设置为现有表单的实例。
换句话说,除非别人能证明我是错的,否则你想做的事就无法完成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)