我在一个窗体上用adodc绑定了几个文本控件,还有一个MSHFlexGrid来实时显示数据,可是每次我addnew或修改后MSHFlexGrid上面的数据还是老样子,一定要下一个记录再增加后才会显示上一条记录。MSHFlexGrid是用ado对象来显示的。具体代码如下:
这是ADO控件的连结代码,ConnectionStr是连结字符串.
With Adodc1
       .ConnectionString = ConnectionStr
       .RecordSource = "select * from saleproduct order by ID"
       .CursorLocation = adUseClient
       .CursorType = adOpenDynamic
       .LockType = adLockOptimistic
       .Refresh
End With显示是用这样的:
 MyOpenrst rst, "select * from saleproduct"
 Set MSHFlexGrid1.DataSource = rstPublic Sub MyOpenrst(rs As ADODB.Recordset, sql As String)
    With rs
        If .State = 1 Then .Close
        .CursorLocation = adUseClient
        .Open sql, Conn, adOpenKeyset, adLockOptimistic 
    End With
End Sub每次update后用
 MyOpenrst rst, "select * from saleproduct"
 Set MSHFlexGrid1.DataSource = rst
来显示,却还是老样子,请问各位有什么办法吗,我不想ADODC与MSHFlexGrid直接绑定

解决方案 »

  1.   

    rs.requy
    Set MSHFlexGrid1.DataSource = rst
      

  2.   

    adodc与MSHFlexGrid1都刷新过了,无效
      

  3.   

    Leftie(左手,为人民币服务)兄:本来就是重新查询过的。但显示出来还是老样子,我用access打开这个表看却发现这个记录已存在,就是查不出来
      

  4.   

    数据集更新一次!后试一下清代空MSHFlexGrid1,再绑定一次!例如:MSHFlexGrid1.clear
    MyOpenrst rst, "select * from saleproduct"
    Set MSHFlexGrid1.DataSource = rst
    MSHFlexGrid1.Refresh
      

  5.   

    MSChart还是比较好用的,可能你的代码实现上有问题,仔细检查一下。
      

  6.   

    谢谢taosin,我早这样试过了,还是老样子,问题我想不是MSHFlexGrid1,应是记录集不能查询到刚更新或增加的记录,一定要下一次更新操作时才真正更新,但我单步操作时又没有问题,真是头都大死,大家帮忙啊