如何从VB6中的选定ListView项中删除Access数据库记录

问题描述 投票:-1回答:2

我试图让以下代码从数据库中删除列表视图的所选项目,但它仅删除第一项:

Private Sub delBtn_Click()
      confirm = MsgBox("Do you want to delete the Employee Record", vbYesNo + 
vbCritical, "Deletion Confirmation")  
      If confirm = vbYes Then  
Set rs = New ADODB.Recordset  
      rs.ActiveConnection = con  
      rs.CursorLocation = adUseClient  
      rs.CursorType = adOpenDynamic  
      rs.LockType = adLockOptimistic  
      rs.Source = "SELECT * FROM tblB where ProjectName= '" & Trim(Listview1.SelectedItem) & "'"
      rs.Open
If Not rs.EOF Then
     With rs

    .Delete adAffectCurrent  
    .MoveNext
End With

    Listview1.ListItems.Clear

    MsgBox "Record successfully deleted..", vbInformation, "Success" ..

End If
    loaddata
End If
    End Sub
database vb6 access
2个回答
0
投票
您需要循环播放,直到rs.EOF为True:

If Not rs.EOF Then With rs .MoveFirst Do While Not .EOF .Delete adAffectCurrent .MoveNext Loop End With End If


0
投票
类似这样的结构将用于删除列表视图中已选择的数据库中的项目:

Dim itm As ListItem Dim sSQLStatement As String For Each itm In ListView1.ListItems If itm.Selected Then ' Delete item from database sSQLStatement = "DELETE FROM tableName WHERE CheckItem=" & itm.Text ' Execute sSQLStatement on your ADO connection con.Execute sSQLStatement End If Next ' Refresh ListView from Database

想法是,您的列表视图将具有要删除的所需项目(您可以在列表视图上启用MultiSelect以选择多个项目),并且可以遍历所有项目来查找这些项目。对于每个选定的项目,使用该项目中的数据执行DELETE命令。

当您填充ListView时,可以在添加项目时指定键值:

ListView1.ListItems.Add [index], [key], [text]

删除记录时可以使用此键:

sSQLStatement = "DELETE FROM tableName WHERE CheckItem=" & itm.Key

© www.soinside.com 2019 - 2024. All rights reserved.