我从数据库中取得一个表单的名称
如:Frma或者Frmb
但是是字符串格式的的
我想打开Frma或者Frmb
不知道如何打开呢

解决方案 »

  1.   

    Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long'执行一段标准的VB代码.
    '函数:ExecuteLine
    '参数:sCode,fCheckOnly
    '返回值:TRUE 成功执行.FALSE 执行失败.
    '例子:ExecuteLine "Form2.show"
    Public Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
        ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
    End Function
      

  2.   

    用取出的字符串进行判断后打开dim strFrm as  StringstrFrm=Rs("FrmName")select case strFrm
    case frm1 : Load frm1
    case frm2: load frm2
    end select
      

  3.   

    hhyttppd(123456)
    你的意思是?
    可以给个例子
      

  4.   

    MSTOP(陈建华(东莞立晨企业资讯服务有限公司)) 的方法似乎可以
      

  5.   

    回复人: MSTOP(陈建华(东莞立晨企业资讯服务有限公司)) ( ) 信誉:105  2004-03-17 12:08:00  得分:0 
     
     
      Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long'执行一段标准的VB代码.
    '函数:ExecuteLine
    '参数:sCode,fCheckOnly
    '返回值:TRUE 成功执行.FALSE 执行失败.
    '例子:ExecuteLine "Form2.show"
    Public Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
        ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
    End Functionvba6.dll里有这种好东西啊,tks
     
      

  6.   

    MSTOP的方法有可能可以。不过我认为,用FORMS.ADD的方法来解决这个问题,似乎更加标准。示例:
        Dim tForm As Form
        
        Set tForm = Forms.Add("FrmA")
        tForm.Show 0
      

  7.   

    MSTOP(陈建华(东莞立晨企业资讯服务有限公司)的方法有问题!这个API似乎只能执行单句的VB代码,而且只能是标准代码,如果你在
    FORM1里执行MSGBOX是可以,但是如果执行FORM2.SHOW,根本没有任何反应。至于我的方法倒是早就投入实际应用了,应当没有任何问题。
      

  8.   

    奇怪,你们的出不来!
    我的怎么能show出来呢?
    我的代码:
    ExecuteLine "Form2.show"