有2个ComboBox,里面的内容都是数据库导出的,第一个是数据(比如1、2、3),第二个类似于寄存器编号(比如a、b、c、d)。当你在第一个box里选择了1之后,第二个box从上到下的排序是bcad。排序的规则是:b为已经有数据1的记录且是最近记录;c为有1的记录但记录时间稍远,以此类推;d为没有1的记录。该编号中是否有记录和记录时间都在数据库中,用的是SQL2005。希望能给我一些好的思路,如果有代码就更好了,再次感谢!

解决方案 »

  1.   

    select * from 表名 where 有记录=true order by 记录时间
    这种类似?
      

  2.   

    绑定关联点击触发
    比如SUB COMBO1.CLICK
    COMBO2.TEXT 跟着变
    end sub
      

  3.   


    数据库表的结构是什么样的?Private Declare Function SendMessagebyString Lib _
    "user32" Alias "SendMessageA" (ByVal hWND As Long, _
    ByVal wMsg As Long, ByVal wParam As Long, _
    ByVal lParam As String) As LongPrivate Const CB_FINDSTRINGEXACT = &H158    '在 ComboBox 中精确查找Private Sub Command1_Click()
    Set rs = cn.Execute("SELECT 寄存器编号 FROM 表名 WHERE 记录 = '" & Combo1.List(Combo1.ListIndex) & "' ORDER BY 记录时间 DESC")Combo2.Clear
    Do Until rs.EOF
      Combo2.AddItem rs!寄存器编号
    LoopFor strReg = "a" To "d"
      If SendMessagebyString(Combo2.hWnd, CB_FINDSTRINGEXACT, -1, strReg) = -1 Then
        Combo2.AddItem strReg
      End If
    Next strReg
    End Sub