VB6 Listview MultiSelect属性代码

时间:2014-02-18 12:56:23

标签: listview properties vb6

首先,我创建了一个在fullrow select上的列表视图。但它只从列表视图中选择一个项目。这是我的代码。这是如何工作的,用户点击列表视图中的项目,然后它将从库存中扣除数量。 如果我有很多要点击的项目,那么逐一点击所有项目是非常烦人的。

y = ListView3.SelectedItem.SubItems(4)
ConnectDB
    rs.Open "Select * from inventory where ProductNumber = " & y, db, 3, 3
    rs(5) = txtStockLeft
        rs.Update
    Set rs = Nothing
    db.Close:  Set db = Nothing
ListView3.ListItems.Remove ListView3.SelectedItem.Index

所以我发现,listview有多选属性。您可以选择多个项目,然后按下该命令。我不知道如何编码它。任何帮助将不胜感激。

EDITed for Alex K.

这是我的代码。我把更新字段,但txtStockLeft上的错误

Private Sub Command1_Click()
ConnectDB
Dim li As ListItem
For Each li In ListView3.ListItems

If li.Selected Then '// is selected item
    txtStockLeft = ListView3.SelectedItem.SubItems(3)
    db.Execute "rs(5) = " & txtStockLeft & " where ProductNumber = " & li.SelectedItem.SubItems(4), , adCmdText
End If
Next

db.Close: Set db = Nothing
End Sub

找不到方法或数据成员是错误,并将错误突出显示到txtStockleft

1 个答案:

答案 0 :(得分:0)

在代码或属性窗口中,您需要ListView3.MultiSelect = True

你只需按住c / shift /点击并选择,然后在按钮事件中(listview点击会不经意地导致问题):

ConnectDB

Dim li As ListItem
For Each li In ListView3.ListItems

    If li.Selected Then '// is selected item
        db.execute "update inventory set ????? = " & txtStockLeft & " where ProductNumber = " & li.SelectedItem.SubItems(4), , adCmdText
    End If

Next

db.Close: Set db = Nothing

此SQL方法避免了您当前拥有的可能昂贵的全表读取,只需将?????替换为更新字段名称。

(还要确保txtStockLeft已经过验证)