Первый элемент списка удаляется, а не выбранный элемент - PullRequest
0 голосов
/ 10 октября 2019

Выбранный элемент в просмотре списка не удаляется, но удаляется первый элемент списка

Private Sub Command2_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.LockType = adLockOptimistic
      rs.Open "SELECT * FROM bmsTable"

      If Not rs.EOF Then
         With rs
            .Delete 'delete listview data
            .MoveNext
         End With

         ListView1.ListItems.Clear

         MsgBox "Record successfully deleted..", vbInformation, "Success" 'display message box
      End If

      loaddata
   End If
End Sub

Я хочу удалить выбранный элемент в просмотре списка и базе данных

1 Ответ

1 голос
/ 10 октября 2019

Не зная, как вы заполнили свой 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, указав правильное имя столбца для первичного ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...