用adodc 的 find 方法查询表中的数据,如图:根据画方框的text(即text54)中的内容来选择要查找的内容,代码:
Private Sub Text54_Change()
    Adodc10.Recordset.Find "时刻=" & Text54.text
End Sub
text54的值是根据其他文本框的值变化而变化的,
Private Sub Text53_Change()
    Text54.text = Text53.text
End Sub
现在出现这样的问题,如果初始的text值是6,则根据text值变化,比如7、8、9、...12、15、20等顺序变化,则能够实现查找的目的;如果查找到23或者从6的值往前查找,比如现在的是是6,变化后是3,就查找不到任何内容,不管text54的值怎么变化,查找的内容也不会出现了。高手们,这个问题怎么解决啊?

解决方案 »

  1.   

    Private Sub Text54_Change()
        Adodc10.Recordset.MoveFirst
        Adodc10.Recordset.Find "时刻=" & Text54.text
    End Sub
      

  2.   

    Private Sub Text54_Change()
       Adodc10.Recordset.Find "时刻=" & Text54.text, , , adBookFirst
    End Sub
      

  3.   

    还有个问题!现在要实现的是当Combo12(4)的时刻大于Combo12(5)的时刻的时候,也就是23点以后(即第二天),选择出来的数据不包括1号的0点到5点,也不显示2号的20点到23点,也就是说只显示1月1号的20点到1月2号的5点,这个可以实现吗?我自己写的代码如下:
    If Val(Combo12(4).text) > Val(Combo12(5).text) Then
        Adodc6.RecordSource = "select * from " & Combo1.text & " where (日期 between  #" & DTPicker1.Value & "#  and #" & DTPicker2.Value & "# ) and (时刻 between " & Combo12(4).text & " and 23 or 时刻 between  0 and " & Combo12(5).text & ")"
        Adodc6.Refresh