想在程序中启动某个表单,但表单的名字存在库中,取出后,如何来表达启动?谢谢!

解决方案 »

  1.   

    http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=197683
      

  2.   

    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  
      

  3.   

    Private  Sub  Command1_Click()  
           Dim  a  As  String  
           a  =  "form2"  
           Dim  myForm  As  Form  
           Set  myForm  =  Forms.Add(a)  
           myForm.Show  
    End  Sub
      

  4.   

    也可以用 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
      

  5.   

    //如果可能的话,应当尽量避免这种情况。
    同意!可以在模块中用一个巨大的Select Case来就行控制,这样清楚一些
      

  6.   

    //也可以用 EbExecuteLine API函数来做不建议用这个api,这个api不能脱离vb的ide
      

  7.   

    //不建议用这个api,这个api不能脱离vb的ide
    同意!以前论坛中多次遇过这个问题,教训深刻!