【问题标题】:Compare results of loop in ListBox比较 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 并提示用户在列表框的第三列中进行相同值的选择。

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

【问题讨论】:

    标签: ms-access listbox vba


    【解决方案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
    

    【讨论】:

    • 谢谢安德烈,非常有帮助。我在网上找不到某种指南来做到这一点,所以你很有帮助。解决方案效果很好。
    猜你喜欢
    • 2012-03-23
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多