dim a as new frmsalebill 是这个意思吗?

解决方案 »

  1.   

    当然不是。请参看
    http://www.csdn.net/Expert/topic/431/431760.shtm
      

  2.   

    dim a as from 
    set a="your form name"
    a.load
    a.show
      

  3.   

    dim newForm as form
    Set newForm = New frmTest
    newForm.caption="新"
    newForm.show 1
      

  4.   

    这个对象程序中已经存在,而不是创建一个新的,是不是能通过类似copy来实现!
    大家努力啦啦!
      

  5.   

    具体的需求是
    原来: Select Case strFormName
          Case “frmMain”
               FrmMain.show
          Case “frmTry”
               FrmTry.show
          Case else
          End Select
    转成对象后:
             IntoForm(“frmTry”).show
    '转对象函数
             Public sub IntoForm(strFormName as String)
             End sub
             '不用select case 语句
      

  6.   

    应该是
    Public sub IntoForm(strFormName as String) as object
    End sub
      

  7.   

    我的意思很清楚了!对于ACTIVEX对象,只要你知道它的名称,
    你就可以用CreateObject来创建该对象!但是对于VB工程内的FORM确不行。例如,你可以用以下代码:
    dim tObject as Object
    dim tStr as string
    ....
    set tObject = CreateObject (tStr)在以上代码中,你只要使tStr="Word.Application",
    你就可以得到一个WORD程序对象,可以用来打开WORD文档;
    你只要使tStr="ADODB.Connection",
    你就可以得到一个ADOCONNECTION对象,可以用来连数据库;好,如果你的工程内有Form1,而你在上述代码内使
    tstr="Form1",却不能得到FORM1对象!
    会报错。完了。我就是不能确定,此题到底有没有解?
      

  8.   

    我的做法是每个form都有一个对应的类,用createobject(类名)创建类的实例,由类打开窗体。
      

  9.   

    Word.Application
    不是对象名称吧?应该是累名啊,
    CreateObject("Word.Application")不是用对象创建对象啊,
    而是用一个类,虽然在VB里称作类有点不正确。
    但是你如果知道一个窗体名,
    想创建它的副本,就只能用Dim frmNew as New FormName啊。
      

  10.   

    多谢feihong0233兄对我的用词的指正。Brunhild兄,你说的恐怕不太对吧,未必你的工程是个ActiveX工程?
    我试过多次,根本无法用CreateObject创建本工程里的类实例。如果你
    能实现,请附上代码,大家研究一下好不好?
      

  11.   

    '把此函数放入模块中
    '此函数没有经过测试
    Public Function CreateFormByName(Byval sFormName As String) As Form
        Dim frm As Form
        For Each frm In Forms
            If frm.Name=sFormName Then
                Set CreateFormByName=New frm '该语句不知是否可行
                Exit For
            End If
        Next frm
        Set frm=Nothing
    End Sub
      

  12.   

    现在宣布,此题无解!(如果ACTIVEVB没有异议)
    结帐!