首先,我创建了一个在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
答案 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
已经过验证)