Private Sub Command1_Click() Dim Str_Form As String Str_Form = "formxx" Dim myForm As Form Set myForm = Forms.Add(Str_Form) myForm.Show End Sub
Private Sub Command1_Click() Dim a As String a = "form2" Dim myForm As Form Set myForm = Forms.Add(a) myForm.Show End Sub
也可以用 EbExecuteLine API函数来做:Option ExplicitPrivate Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As LongPublic Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0 End Function'传入的参数:strFormName为窗体类型名称 Public Function ShowForm(ByVal strFormName As String) ExecuteLine "Dim fForm1 As " & strFormName ExecuteLine "set fForm1 = new " & strFormName ExecuteLine "fForm1.Show " '显示窗体 ' ExecuteLine "Unload fForm1" '卸载窗体 End FunctionPrivate Sub Command1_Click() Dim f As String f = "Form2" Call ShowForm(f) End Sub
Dim Str_Form As String
Str_Form = "formxx"
Dim myForm As Form
Set myForm = Forms.Add(Str_Form)
myForm.Show
End Sub
Dim a As String
a = "form2"
Dim myForm As Form
Set myForm = Forms.Add(a)
myForm.Show
End Sub
ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
End Function'传入的参数:strFormName为窗体类型名称
Public Function ShowForm(ByVal strFormName As String)
ExecuteLine "Dim fForm1 As " & strFormName
ExecuteLine "set fForm1 = new " & strFormName
ExecuteLine "fForm1.Show " '显示窗体
' ExecuteLine "Unload fForm1" '卸载窗体
End FunctionPrivate Sub Command1_Click()
Dim f As String
f = "Form2"
Call ShowForm(f)
End Sub
同意!可以在模块中用一个巨大的Select Case来就行控制,这样清楚一些
同意!以前论坛中多次遇过这个问题,教训深刻!