各位:
    你们好!
    我执行查询时(第一次)把数据显示在MSHFlexGrid1中(MSHFlexGrid1.datasourse=rsjbqk),退出查询后又执行新的查询(第二次)可显示在MSHFlexGrid1中的数据仍为第一次查询显示的数据,只有结束程序后执行查询显示数据才正确。且我在加载MSHFlexGrid1时执行了xffindlist.MSHFlexGrid1.Clear
为什么???
Private Sub Form_Load()
     xffindlist.MSHFlexGrid1.Clear
     Set xffindlist.MSHFlexGrid1.DataSource = rsjbqk
End Sub

解决方案 »

  1.   

    取消查询时
    不能用xffindlist.visible=false
    而用unload me 
      

  2.   

    回复过了:
    代码不应写在 Form_Load()事件中。写在相应的查询按钮事件中:
    Private Sub cmdFind_Click()
         xffindlist.MSHFlexGrid1.Clear
         Set xffindlist.MSHFlexGrid1.DataSource = rsjbqk
    End Sub
      

  3.   

    Set xffindlist.MSHFlexGrid1.DataSource =nothing
    可以释放mshflexgrid和记录集的帮定
      

  4.   

    然后要刷新refresh
    最好用个显示函数专门'显示数据
    Private Sub ShowData()
    Dim col, row As Integer
    MSHFlexGrid1.Rows = rs.RecordCount + 1Do While rs.EOF = False
        row = row + 1 '表的行
        For col = 0 To 8 '表共有9个字段 即共9列
            Select Case col
                Case 3 To 4
                    MSHFlexGrid1.TextMatrix(row, col) = Format(rs.Fields(col), "yyyy年mm月dd")
                Case Else
                    MSHFlexGrid1.TextMatrix(row, col) = rs.Fields(col)
            End Select
        Next col
        rs.MoveNext
    Loop
    End Sub
      

  5.   

    然后要刷新refresh
    最好用个显示函数专门'显示数据
    Private Sub ShowData()
    Dim col, row As Integer
    MSHFlexGrid1.Rows = rs.RecordCount + 1Do While rs.EOF = False
        row = row + 1 '表的行
        For col = 0 To 8 '表共有9个字段 即共9列
            Select Case col
                Case 3 To 4
                    MSHFlexGrid1.TextMatrix(row, col) = Format(rs.Fields(col), "yyyy年mm月dd")
                Case Else
                    MSHFlexGrid1.TextMatrix(row, col) = rs.Fields(col)
            End Select
        Next col
        rs.MoveNext
    Loop
    End Sub