解决方案 »

  1.   

    set oform = forms.add("yourform")
      

  2.   

    dim frm as form
      set frm = forms.add("form1")
      frm.show
      

  3.   

    forms如果add一个实际上并不存在的窗体name,这个错误用on error是无法捕获的,但是你完全可以事先把工程中所有窗体的name放在一个数组中,先判断是有效的窗体name才加载。
      

  4.   

    哦,如果把VB的错误捕获类型设置为“遇到未处理的错误时中断”是可以检测到的:
    Private Sub Command1_Click()
        Dim frm As Form
        On Error GoTo e:
        Set frm = Forms.Add("form3")
        frm.Show
        Exit Sub
    e:
        MsgBox "窗体不存在或其他错误!"
    End Sub
      

  5.   

    所以unhappy了吧?呵呵:)另,千万不要提创建ActiveX Dll的办法!能否不改动现有工程?
    这个功能只想做成代码片段而已,
    随便扔哪都可以,仅在用的时候才"Run"一下而已:)