http://bbs.wolf.net.cn:8080/attachment.php?s=&postid=2083286像上图那样,点样上面的一条记录,下面的Text文本会随着改变更新上面的DataGrid我用ADO控件连接显示了表的前几个字段.我想点击上面的记录时,下面的Text文本会显示表里最后一个字段(备注)是不是要建立两个ADO,上面的用SQL显示前几个字段,下面的Text就显示最后一个字段要怎么连系呢??????

解决方案 »

  1.   

    点击上面的记录时,取得记录的唯一标示新建一个adodb.recoderset对象,根据取得的唯一标示查找
    备注,给文本框付值比较麻烦的是,鼠标和键盘都能移动控件上的光标,所以都要在相应的事件里面处理,以保证你取得的就是当前三角指向的那条记录标示
      

  2.   

    添加一个ADO对象或控件,一个TEXT框,一个DATAGRID
    拿控件(ADODC)举例,把TEXT的datasource添加ADODC1,然后添加datafield为你要显示的字段,最后把DATAGRID和ADODC联上(datagrid的datasource属性),现在移动datagrid后text就随着动了.
      

  3.   

    Private Sub DataGrid_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
      Text1.text= DataGrid.Columns(5).Value
    end sub
      

  4.   

    最好将DataGrid的设置为点选一行
      

  5.   

    Private Sub grdUser_lClick()
        Text1.text= DataGrid.Columns(5).Text     '(5)为字段号,从1开始向右数,你选一个
    End Sub
      

  6.   

    wdwd05(☆VB-小伙~) 你你你怎么好这样?这样简单的问题也要分?kuden (newbie) :如果还不能解决,尽管与我联系。短信会发吧?
      

  7.   

    首先谢谢大家回答,可能是我说得不清楚,不好意思.我说的要求是一个表,前5个字段显示在上面的DataGrid里面,最后一个字段显示在下面的Text文本框里.下面的Text要根据上面的记录显示.由于我是初哥,所以我是用ADO的属性页连接Access数据库的......开始我也是想在DataGrid_RowColChange的事件里直接给Text赋值的.
    可是由于我设置ADO的记录源是前5个字段,所以直接写Text1.text= DataGrid.Columns(6).Value时出错......谢谢大家了.
      

  8.   

    应该是text1.text=ado1.recordset.feilds(5)----------0是第一条记录,因为文本框需要绑定数据库控件的指针对应的记录。
      

  9.   

    不行,会出错.实时错误'3265'  对象'Item'的方法'Fields'失败开始我也是想在DataGrid_RowColChange的事件里直接给Text赋值的.
    可是由于我设置ADO的记录源是前5个字段,所以直接写Text1.text= DataGrid.Columns(6).Value时出错......由于上面的记录源是select 5个字段 from 表 ,我想在下面的Text显示这个表的第6个字段
    而且是对应上面的DataGrid的当前记录......
      

  10.   

    问题已经解决!!!感谢大家!特别感谢 csdngoodnight(居然比我还快,你真行!)
      

  11.   

    A、B、C、D、E、F六个字段。
    方法一:在设计阶段设置属性:
    adodc1.recordsource="select * from table"
    datagrid1.datasource=adodc1
    text1.datasource=adodc1
    text1.datafields="f"
    右键点击datagrid1,检索字段,然后再右键点击多一次,编辑,删掉最后一列,可以运行了。方法二:在程序运行时隐藏datagrid的最后一列:
    adodc1.recordsource="select * from table"
    datagrid1.datasource=adodc1
    text1.datasource=adodc1
    text1.datafields="f"Private Sub Form_Load()
    datagrid1.columns(5).visible=false
    End Sub