我的一个窗体上有四个文本框和一个datagrid控件和几个commandbutton按键。这几个按键的功能是上一条,下一条,最前条,最后条。和添加,删除,更新等。文本框和rst记录集没有绑定。是用:
Public Sub frmaddworker_display()
    If rst_move.BOF = False And rst_move.EOF = False Then
        txt_code = rst_move!code
        txt_name = rst_move!workername
        txt_password = rst_move!password
        cbo_purview.ListIndex = rst_move!workertypecode
    End If
End Sub
来更新文本框里的内容的。但如果datagrid控件显示也由rst_move做记录源,我认为很不好办,我又定义了一个rst 来专门做datagrid的记录源。但这样做又有不好的地方:就是文本框 内容不能和datagrid内容同步,就算能同步也很麻烦。而且,我的rst_move打开时是放在load事件里,更新时我又用的是rst而不是rst_move,而移动又是用的rst_move,这样导制了我更新数据在datagrid里能反应出来。而不能在我点“下一条”时反应出来。有没有更好的办法,让我用 一个记录集(rst)同时做为datagrid的数据源。并且能用它来更新数据,和移动数据,让它在文本框里反应出来。(就是点“上一条”,“下一条”这种 )
如还不明白,请高手留下邮箱,我把代码发给你。谢谢了!

解决方案 »

  1.   

    每次更新后,都把数据源refresh一下.
      

  2.   

    refresh后,datagrid里就没有数据显示。
      

  3.   

    textbox好象也可以绑定到数据源。msdn有一个现成的示例
      

  4.   

    我不要绑定,我用
    Public Sub frmaddworker_display()
        If rst_move.BOF = False And rst_move.EOF = False Then
            txt_code = rst_move!code
            txt_name = rst_move!workername
            txt_password = rst_move!password
            cbo_purview.ListIndex = rst_move!workertypecode
        End If
    End Sub
    这个自定义函数显示在txtbox里!
      

  5.   

    datagrid控件没有显示,是因为没有使用客户端游标。
    rs.CursorLocation=adUseClient'使用客户端游标
    set datagird1.datasource=rs
    datagrid1.refresh
      

  6.   

    主要原因是:datagrid1显示数据后要关闭数据源。rs.close
    而数据“上一条”,“下一条”这种操作打开后rs.open "select * from talbe" 就不能关。如果关了rs.close后,再打开,那指针又定在第一条记录上了。这就是不好解决的地方。哪位有好方法,指点一下嘛!