我遇到过几次这种情况,但一直没有找到任何解决方案,所以希望你能帮忙。我有一个未绑定的表单,其中包含一个组合框 (cmbVariety) 和两个列表框 (lstItems 和 lstProductionYears)。当在 cmbVariety 中进行选择时,它会设置 lstItems 的底层行源查询。当选择 lstItems 中的项目时,我希望它根据选择设置 lstProductionYears 的底层行源。
lstItems 是且必须是多选:无。不能让用户在列表中选择多行。
所以我尝试了代码:
Private Sub lstItems_Click()
Dim i As Integer
With lstItems
For i = 0 To .ListCount - 1
If .selected(i) Then
YearsTable .Column(0, i) 'A routine for setting the rowsource for lstProductionYears based on the lstItems selection
End If
Next i
End With
Me.lstProductionYears.Requery
End Sub
以及代码:
Private Sub lstItems_Click()
Dim sel As Variant
With lstItems
Debug.Print .ItemsSelected.count 'results in 0 selected even when a line is clicked
For Each sel In .ItemsSelected
YearsTable .Column(0, sel) 'A routine for setting the rowsource for lstProductionYears based on the lstItems selection
Next sel
End With
End Sub
两种情况下选择都不会被记录。双击时它有效,但我将其用于其他用途。我错过了什么?(再次 - 我知道它与多选不同,但那不是一个选项)
您可以简单地尝试传递 lstItems.Value