我想把2个form联起来,创建一个commd button,点击然后显示另一个form??还一个问题,我在form1里列出一些大类,比如说好多种房子,房子里面有人物,form1里只是显示房子的信息,创建一个button,点击进入这个房子,出现form2,里面都是有关这个房子内的人物信息!
是通过数据库连接的,数据库给好了,里面2个表,一个是人物信息一个是房子信息,2个表中都有housereference这个数据,可以通过这个housereference相等来判断从form1连接到form2后显示的相关人物信息,我该怎么写????????应该挺详细了,比较菜,写的不专业,麻烦了!!
谢谢了!!!!!!!!!!!!

解决方案 »

  1.   

    创建一个标准工程,里面有一个form1了,然后再添加一个窗体form2,然后在form1上放一个command1,然后双击command1就会打开代码视图了,并且默认就是command1的单击事件,在单击的事件过程中写上:
    form2.show
    就可以通过点击这个command1来显示form2出来了!另外数据库不是你这样想象的。
    假设form1上有1,2,3个不同的房子,其中1房间有一个人A,2房间有一个人B,3房间有一个人C,你要点击form1上面的1房间,就会调用form2的A人的数据。依次类推,其实这样只要一个表就可以了,假设房间作为这个表的一个字段,而人物在这个表里面有姓名,年龄,性别三个字段,那么只要把房间1的一个字段和人物A的三个字段作为同一行,只要找到房间1的数据,就把人物A的所有数据显示到另一个窗体就可以了,不需要弄一个专用的字段housereference来判断从form1连接到form2后显示的相关人物信息,但是相关的详细代码过程相对你可能比较难理解。
      

  2.   

    先谢谢这位兄台,辛苦了!!
    你能不能留一下你的MSN或者是QQ,我可是大个菜鸟,我正在做我的coursework,5月中旬就交了,我怕我做的过程还有其他问题,我想直接问问你,可以吗??
      

  3.   

    另外我说的housereference就是数据库给出来的数据啊,我给你看下其中一部分,你就明白了
    这是第一个表person
    FirstName  FamilyName HouseReference
     Filch          5
    Madam  Hooch          5
    Drako  Malfoy          3
    Herc  Granger          1
    Ron   Weasley          1
    第2个表是house
    Name                  Location             Reference
                     Hogwarts West Wing    1  
    Hufflepuff         Hogwarts East Tower    2
    Slytherin Inner            Courtyard basement    3                           
    Ravenclaw                  South Tower    4
    Unallocated                      5
    2个表是有联系的,我想实现的是点击进入房间,相对应的人物就能出现在form2里!!
    多谢!!!!
      

  4.   

    在 commond1的事件中加入判断就可以了!这个比较好实现!
      

  5.   

    我做了个示例, 仅供参考Public oconn    As New ADODB.Connection
    Public oRst     As New ADODB.RecordsetPrivate Sub Command1_Click()
        Dim sSQL        As String
        Dim iRef        As Integer
    On Error Resume Next    '载入Form2
        Load Form2
        
        'Combo1里放的是可选的house里的Reference
        iRef = LTrim(CInt(Combo1.Text))
        
        sSQL = ""
        sSQL = sSQL & " SELECT * FROM person"
        sSQL = sSQL & " WHERE HouseReference = " & iRef
        
        '检索person表里相对应的记录
        Set oRst = oconn.Execute(sSQL)
        If Not oRst.EOF Then
            'Form2里有DataGrid来显示Person
            Form2.DataGrid1.DataSource = oRst
        End If
        
        '弹出Form2
        Form2.Show
        
    End SubPrivate Sub Form_Load()
        Dim sConnStr    As String
    On Error Resume Next    sConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;" _
            & "Data Source=" & App.Path & "\db2.mdb;" _
            & "Persist Security Info=False"
            
        'DB 连接
        oconn.CursorLocation = adUseClient
        oconn.Open sConnStr
    End SubPrivate Sub Form_Unload(Cancel As Integer)
        '断开连接
        If oconn.State = 1 Then
            oconn.Close
            Set oconn = Nothing
        End If
        
        Set oRst = Nothing
    End Sub
      

  6.   


    ==================================
    iRef = LTrim(CInt(Combo1.Text))
    ==================================
    晕...............
      

  7.   

    其實用一個SQL語句用內連接或者用復合SQL查詢語句就可以了﹐但是前提必須是2個表都有一個名字相同的字段才行﹐那還不如把2個表寫為一個。。
      

  8.   

    小弟比较愚笨,这个没看懂,另外form_load和form_Unload2个类是什么作用?Dim是什么意思啊??
    Private Sub Form_Load()
        Dim sConnStr    As String
    On Error Resume Next    sConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;" _
            & "Data Source=" & App.Path & "\db2.mdb;" _
            & "Persist Security Info=False"
            
        'DB 连接
        oconn.CursorLocation = adUseClient
        oconn.Open sConnStr
    End Sub
    感谢,辛苦!!
      

  9.   

    xujinfeng大哥,你说的那个用SQL语句来实现,2个表是都有相同的字段,该弄啊!!
    数据库是学校事先给好的,我也想改,不能改啊,不过能改我也不会!!^_^
      

  10.   

    我现在虽然在学VB但还没有学到数据库部分,所以BTbug写的源代码我只能看懂五六分.我只想说,BTbug的代码注释太少了,也许我很菜,但这样我们看起来会很吃力
      

  11.   

    我是大菜鸟,老哥比我强多了,BTbug是什么!!