先说一下具体的环境,窗体上有一个列表框和一个按钮,但窗体load时,列表框里就加载了若干项,当按钮按下了,列表框中的项发生变化(可能增加,可能减少,可能不变),我的目的是要一段语句能够判断出按下按钮后列表框中多了哪些内容,少了哪些内容(一定要知道内容)。我是要利用这段语句并结合相关sql语句来更新数据库中的相关数据项目,哪位好心人帮我写一下这段语句,假设列表框为list1,按钮为command1。先谢了,焦急等待中,。。

解决方案 »

  1.   

    Dim oldData$()
    Dim diffData$()Private Sub Command1_Click()
        GetOldData
        GetNewData
        CompareData
    End SubSub GetOldData()
        Dim lngCnt&
        
        ReDim oldData(0)
        List2.Clear
        For lngCnt = 0 To List1.ListCount - 1
            ReDim Preserve oldData(lngCnt)
            oldData(lngCnt) = List1.List(lngCnt)
            List2.AddItem oldData(lngCnt)
        Next
    End SubSub GetNewData()
        Dim lngCnt&
        
        List1.Clear
        For lngCnt = 1 To 10
            List1.AddItem CStr(CInt(Rnd * 10) + 1)
        Next
    End SubPrivate Sub Form_Load()
        GetNewData
    End SubSub CompareData()
        Dim lngCnt&, lngCnt2&, lngCnt3
        
        ReDim diffData(0)
        
        List3.Clear
        For lngCnt = 0 To List1.ListCount - 1
            For lngCnt2 = 0 To UBound(oldData) - 1
                If List1.List(lngCnt) = oldData(lngCnt2) Then
                    Exit For
                End If
            Next
            If lngCnt2 >= UBound(oldData) Then
                ReDim Preserve diffData(lngCnt3)
                diffData(lngCnt3) = List1.List(lngCnt)
                List3.AddItem diffData(lngCnt3)
                lngCnt3 = lngCnt3 + 1
            End If
        Next
    End Sub
      

  2.   

    list1显示新生数据,list2显示原来数据,list3显示不同的数据。
    主要是为了查看结果。三个函数基本上可以用,自己根据需要改吧
      

  3.   

    是啊,数字是模拟生成的数据啊,我不知道你的数据从哪来的啊
    list1的数据是新生成的,
    list2的数据是上一次生成的,
    list3的数据是新生成的中和上一次生成的不同的数据
      

  4.   

    只要改list1的数据来源就好啦