希望你能提供帮助 - 我有一个简单的列表框,它是从DB填充的,有6列[ID,名称,ordnumber,数据,价格,邮政编码]
列表框的填充没有问题[因此,我不会发布代码]
我遇到的问题是,当我在列表框中选择项目时,我正试图获取价格的总计。
With lstOrdersInBatch
tbxTotal.value = 0
For IntIndex = 0 To .ListCount - 1
If .Selected(IntIndex) Then
'tbxTotal = tbxTotal + .Column(4)
End If
Next
End With
它给了我不正确的价值
我已经完成了调试日志,似乎只选择了最后一项&并非全部选中。
希望你能提供帮助。
谢谢
请注意访问VBA编程。
=====已解决===
Retrieve column values of the selected row of a multicolumn Access listbox
这有答案。
With lstOrdersInBatch
tbxTotal.value = 0
For IntIndex = 0 To .ListCount - 1
If .Selected(IntIndex) Then
tbxTotal = tbxTotal + lstOrdersInBatch.Column(4, IntIndex)
End If
Next
结束
谢谢你的尝试。
答案 0 :(得分:1)
好吧,我已根据您的评论调整了代码:
Dim i As Integer
For i = 0 To Me.lstOrdersInBatch.ListCount - 1
If Me.lstOrdersInBatch.Selected(i) Then
tbxTotal = tbxTotal + Me.lstOrdersInBatch.ItemData(i)
End If
Next i
答案 1 :(得分:0)
您可以使用以下内容减少迭代次数并避免使用if
语句:
Dim idx
tbxTotal = 0
With lstOrdersInBatch
For Each idx In .ItemsSelected
tbxTotal = tbxTotal + .Column(4, idx)
Next idx
End With