比较 ListBox 中的循环结果

Posted

技术标签:

【中文标题】比较 ListBox 中的循环结果【英文标题】:Compare results of loop in ListBox 【发布时间】:2017-11-27 22:01:24 【问题描述】:

下午好,

我正在维护一个 Access 数据库,并且我在表单上有一个多选和多列列表框。我正在查询列表框以根据所有用户选择的行获取第三列(包含文本)中的值。代码如下:

Dim varItem As Variant

For Each varItem In Me!Lst_CPList.ItemsSelected
Debug.Print Lst_CPList.Column(2, varItem)
Next varItem

我可以在即时窗口中看到我得到了正确的结果。我需要做的是:

1 - 比较上述代码的结果(与列表框中选定的行一样多的结果)

2 - 确保结果都相同。如果不是,我将退出 sub 并提示用户在列表框的第三列中进行相同值的选择。

我希望这足够清楚,谢谢大家的帮助。

【问题讨论】:

【参考方案1】:

如果一个差异就足以触发错误,这很简单。

Dim varItem As Variant
Dim strValue As String
Dim strFirst As String

strFirst = ""
For Each varItem In Me!Lst_CPList.ItemsSelected
    strValue = Nz(Lst_CPList.Column(2, varItem), "")
    Debug.Print strValue

    ' First item? Then store for comparison
    If strFirst = "" Then
        strFirst = strValue
    ' Not first item: compare with first one
    Else
        If strValue <> strFirst Then
            MsgBox "Wrong pick!"
            Exit Sub
        End If
    End If

Next varItem

【讨论】:

谢谢安德烈,非常有帮助。我在网上找不到某种指南来做到这一点,所以你很有帮助。解决方案效果很好。

以上是关于比较 ListBox 中的循环结果的主要内容,如果未能解决你的问题,请参考以下文章

python tkinter 中 listbox绑定scrollbar实现自动循环滚动

winform中的listbox怎样添加双击事件

asp.net listbox 中的内容比较多 如果点击按钮后 跳到选中项呢

VB里如何逐行读取listbox中的数据

如何计算 ListBox 中的数字 [关闭]

VB 用API读取别的软件的LISTBOX中的某项和项目的总数