A种:
第一步:从数据库表中获得一个窗体的名称:
Public Function FormName(BillNameStr As String) As String
'BillNameStr-窗体名称
Ssql = "SELECT BillName FROM Gy_BillType WHERE BillTypeName='" & BillNameStr & "'"
SQLquery Ssql, Rs
If Not (Rs.BOF And Rs.EOF) Then
  FormName = Trim(Rs("BillName"))
End If
Rs.Close
End Function
第二步:将获得的窗体名为FormName()的窗体显示出来
dim strFrm as string 
FormName(strForm).show 
以上提示为类型不配
________________________________________________________B种:将A种第一步的写义为
Public Function FormName(BillNameStr As String) As Form
却提示:
不能给窗体赋值,,,请问,这有什么办法??
高手们,,请指点啊.....

解决方案 »

  1.   

    更正:第二步:
    第二步:将获得的窗体名为FormName()的窗体显示出来
    dim strFrm as string 
    strFrm=text1             '有加上这一句
    FormName(strForm).show 
    以上提示为类型不配
      

  2.   

    不能这么搞的,取得名字后你要FINDWINDOW,再SHOWWINDOW。
    你把函数声明为FORM,只是表示该函数的返回值是一个FORM对象,你可以把这个FORM给SHOW出来,但不表示你可以用这种形式来SHOW的,你可能写惯了网页脚本:
    document.all(objectname).style.visibility=visible可以把由字符串指示的对象给显示出来(如果它之前是HIDDEN的话),
      

  3.   

    看看这个,不就是?
    Private Sub Command1_Click()
        
        Dim sfrmName    As String
        Dim ofrm        As Form
        
        
        sfrmName = "Form2"
        
        Set ofrm = Forms.Add(sfrmName)
        ofrm.ShowEnd Sub
      

  4.   

    Private Sub Command1_Click()
        
        Dim sfrmName    As String
        Dim ofrm        As Form
        
        
        sfrmName = "Form2"
        
        Set ofrm = Forms.Add(FormName(sfrmName))
        ofrm.Show
        
    End Sub
    Public Function FormName(BillNameStr As String) As String
        'BillNameStr-窗体名称
        Ssql = "SELECT BillName FROM Gy_BillType WHERE BillTypeName='" & BillNameStr & "'"
        SQLquery Ssql, Rs
        
        If Not (Rs.BOF And Rs.EOF) Then
            FormName = Trim(Rs("BillName"))
        End If
        
        Rs.Close
        
    End Function你要的!
      

  5.   

    提示错误,
    实时错误'424'
    要求对像错误指向:
    Set ofrm = Forms.Add(FormName(sfrmName))
      

  6.   

    sfrmName = "Form2"
    这句的Form2哪里来的??
    在我的工程里,
    Form2也即是
    sfrmName = FormName(sfrmName)
      

  7.   


    Private Function ShowForm(ByVal frmName As String) As Boolean
    Dim frmTemp As Form
        
        For Each frmTemp In Forms
            If frmTemp.Name = frmName Then
                frmTemp.Show
                ShowForm = True
                Exit Function
            End If
        Next
    End Function
    在别的地方直接调用就可以了。
    如下的调用: 
    if ShwoForm("frmOrder") then
        msgbox "显示成功",vbokonly,"提示信息"
    else
        msgbox "没有对应的窗口",vbokonly,"提示信息"
    end if
      

  8.   

    其实你就是想实显示相应窗体,不用那么麻烦,这也可以简单实现:
    selecct case strFrm 
      case "frm1"
        frm1.show 1
      case  "frm2"
        frm2.show 1^^^^^^^^^^^^^
    end select
      

  9.   

    ^_^,
    Stupid solution is the best solution,what can i say.