我做了一个界面,共有四个text控件分别显示查询结果某一条目的四个属性同时设置了一个datagrid控件显示所有结果,现在我想在点击datagrid的某一行时,四个text控件也可以实时更新,并且不管我是在text还是在datagrid中对数据进行了修改,再点另一个更新按钮都可以实现更新.应该怎么办?关键问题在于如何得到选定行,再如何实现text中对选定行数据的实时更新.

解决方案 »

  1.   

    很简单啊,先写个MODUALPublic userlevel As String    '保存用户级别
    Public flag As Integer        '记录操作标记
    Public condstr As String      '条件字符串
    Public recs As Integer        '保存记录集中记录个数
    Public rs As ADODB.Recordset
    Public SQL As String'用于执行用户给定SELECT的语句,返回对应的记录集,但只能用于查询
    Public Function exesql(ByVal SQL As String) As ADODB.Recordset
    Dim DB As New ADODB.Connection     '声明连接Connection对象的变量DBDim spath As String                '使用Open打开一个数据库连接
    spath = "Provider=Microsoft.Jet.OLEDB.4.0;" _
            & "Persist Security Info=False;" _
          & "Data Source =" & App.Path & "\Inv_new.mdb"
    DB.Open spath
    DB.CursorLocation = adUseClient'Dim EF As New ADODB.Recordset
    'If EF.State <> adStateClosed Then
    '  rs.Close
    'End If
    'EF.Open sql, conn, adOpenStatic, adLockBatchOptimistic 'sql是你的形参
    'Set exesql = EF             'exesql函数名
    '释放对象型变量
    'Set EF = Nothing
    'Set DB = Nothing
    '声明记录集对象变量EF
    Dim EF As New ADODB.Recordset
    '执行SQL语句查询记录集,把查询的记录集赋给记录集变量
    Set EF = DB.Execute(SQL)   '11111-->sql形参
    Set exesql = EF             'exesql函数名
    '释放对象型变量
    Set EF = Nothing
    Set DB = Nothing
    End Function随后SQL = " select * from table1"
    set rs = exesql(sql)
    set datagrid.datasouce = rs在datagrid1的mouse_up 事件里或 mouse_down事件里写上这些代码
    text1.text = rs.field("字段1")
    text2.text = rs.field("字段2")在command1的click 事件里写上 以下代码
    sql="update table1 set 字段1='" & text1.text & "'"
    exesql(sql)'refresh the datagrid1
    sql= "select * from table1"
    set rs = exesql(sql)
    set datagrid1.datasouce = rs
    ...............
    后面的不用我在写了吧,你自己发挥下想象吧