【问题标题】:How to loop through and capture each selected item in an Access List Box?如何循环并捕获访问列表框中的每个选定项目?
【发布时间】:2020-01-29 21:11:48
【问题描述】:

我正在尝试遍历多选列表框并将每个值传递给运行存储过程的函数,但我不知道该怎么做。

这是我所拥有的:

Private Sub cmdBegin_Click()
Dim i As Integer
Dim selected(89) As String
Dim item As Variant

With Me.lstSmartSheet
    For Each item In selected()
        If Me.lstSmartSheet.selected(item) Then
            Call DataExport(item)
        Next
End With

End Sub

【问题讨论】:

    标签: vba loops ms-access


    【解决方案1】:

    您可以遍历 ItemsSelected 属性,该属性是与列表框控件中选定的项目相对应的索引集合。

    然后您可以使用每个索引从ItemData 集合中获取适当的项目。

    例如:

    Private Sub cmdBegin_Click()
        Dim i
        With Me.lstSmartSheet
            For Each i In .ItemsSelected
                Call DataExport(.ItemData(i))
            Next i
        End With
    End Sub
    

    这里,在For Each 循环中,变体变量i 被依次分配给选定项的索引集合中的每个索引。

    【讨论】:

    • 是的,这正是我正在寻找的。你能解释一下程序如何知道变量“i”是所选项目的名称吗?处理变量时,我的第一个想法是为它们分配一个值,但我们在这里没有这样做(至少不是我们传统的做法)。
    • 不客气。在For Each 循环中,变量i 被依次分配给选定项的索引集合中的每个索引。您可能希望将其视为“占位符”,表示在循环的每次迭代中处理的项目。
    猜你喜欢
    • 2017-02-21
    • 1970-01-01
    • 2017-09-13
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多