在一个窗体里,比如左边放了一个treeview,右边是个MSFlexGrid(表格控件或者其它东东~)想点击treeview里的一项时,右边可以显示出来,比如:数据库一个表里有0111、0222两个班的信息(年级,教室等等),只想让右边出现0111的信息,其它工作已经做好:Set db = Workspaces(0).OpenDatabase("db2.mdb", False)
  Set rst = db.OpenRecordset("SELECT 年级,班级,教室,专业,年制,备注 from class where 班级='0111'")
具体怎么做呢?很急的,再劳驾一下大家了,谢谢!

解决方案 »

  1.   

    1.先定义两个公共变量:数据库pub_db,数据表pub_tb
    2.点击左边treeview的一个node时,自动更新pub_db和pub_tb的值
    3.右边msflexgrid显示:
    set db=Workspaces(0).OpenDatabase(pub_db, False)
    Set rst = db.OpenRecordset("SELECT 年级,班级,教室,专业,年制,备注 from " & pub_tb & " where 班级='0111'") 
    set msflexgrid.datasource=rst
      

  2.   

    不好意思,SELECT 年级,班级,教室,专业,年制,备注 from " & pub_tb & " where 班级='0111'里面是from "& pub_tb &" 么?提示我类型未定义
    另外,我定义了公共变量Dim rst As Recordset
      Dim pub_tb As Recordset
      Dim db As Database
    Private Sub Form_Load()
      Dim mynod As Node
      Set mynod = TreeView1.Nodes.Add(, , "class", "01级")
        Set mynod = TreeView1.Nodes.Add("class", tvwChild, , "01计算机")
        Set mynod = TreeView1.Nodes.Add("class", tvwChild, , "01美术")
        Set mynod = TreeView1.Nodes.Add("class", tvwChild, , "01数学")
        Set mynod = TreeView1.Nodes.Add("class", tvwChild, , "01信息")
        mynod.EnsureVisible
        Set db = Workspaces(0).OpenDatabase("db2.mdb", False) 'DB2.MDB是我做的数据库
        Set rst = db.OpenRecordset("class", dbOpenTable)      'CLASS是里面的一个表
      
    End Sub
    TREEview里是:
    Private Sub TreeView1_BeforeLabelEdit(Cancel As Integer)
    Select Case Node.Text
    Case "01计算机"
    Set pub_td = db.OpenRecordset("SELECT 年级,班级,教室,专业,年制,备注 class where 班级='0111'")  
    Set biao.DataSource = pub_td  'biao是MSFlexGrid 的名字
    End Select
    End Sub
    但是,点了以后没反应,效果没有实现,望指教,谢谢!
      

  3.   

    将点击treeview的node对象的代码放在nodeclick事件中,beforelabeledit事件是node的文本被修改前触发的
      

  4.   

    谢谢!晕~~才做过一个,竟然又忘记放nodeclick里了,多谢指点!