使用表单名称创建封闭表单的新表单实例的代码
我想用一个变量替换长的 Select Case 列表。
在 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
我只是想避免列出我项目中的每一个表单,并且必须在添加新表单时更新列表。