Не зная, как вы заполнили свой ListView, я могу только показать вам, что я могу сделать в этой ситуации. Предположительно ваш стол имеет первичный ключ. Я бы использовал это как Key
для каждого ListItem. В следующем примере замените Project_ID
на фактическое имя вашего первичного ключа:
Set list = ListView1.ListItems.Add(, CStr(rs!Project_ID) & "k", rs!Project_Name)
Заполнив ListView таким образом, ваш код станет:
Private Sub Command2_Click()
confirm = MsgBox("Do you want to delete the Employee Record", vbYesNo + vbCritical, "Deletion Confirmation")
If confirm = vbYes Then
ListView1.ListItems.Remove ListView1.SelectedItem.Key
Dim CM As ADODB.Command
Set CM = New ADODB.Command
Set CM.ActiveConnection = con
CM.CommandType = adCmdText
CM.CommandText = "DELETE FROM bmsTable WHERE Project_ID = ?"
CM.Parameters.Append CM.CreateParameter("@Id", adVarChar, adParamInput, 50, ListView1.SelectedItem.Key)
CM.Execute , , adExecuteNoRecords
MsgBox "Record successfully deleted..", vbInformation, "Success"
End If
End Sub
Вам понадобитсяизменить предложение WHERE
, указав правильное имя столбца для первичного ключа.