Access のリスト ボックスから選択した複数のレコードを削除する必要があります。非複数選択リストボックスから選択した 1 つのレコードを削除する SQL と VBA がありますが、複数選択リストボックスから複数の選択レコードを削除するようにコードを適応させることはできません。現状のコードは次のとおりです。ボタンの On_Click イベントにアタッチされ、リストボックスは listboxname と呼ばれます。
Private Sub DeleteSelected_Click()
Dim lngID As Long
Dim strSQL As String
If IsNull(ListBoxName) Then
Exit Sub
End If
With Me.ListBoxName
lngID = ListBoxName.Value
strSQL = "DELETE * FROM [tablename] WHERE [tablefieldname] =" & lngID
CurrentDb.Execute strSQL
ListBoxName.Requery
End With
End Sub
設定してみた
lngID = ListBoxName.Value
に
lngID = ListBoxName.ItemsSelected(0)
また
lngID = ListBoxName.Columns(0)
無駄に。SQL に問題があるようですが、修正方法がわかりません。何か案は?
編集:それはとてもクールです:)乾杯ベリアル。ここに更新されたコードがあります
Private Sub DeleteSelected_Click()
Dim strSQL As String
Dim vItem As Variant
Dim strSet As Long
If IsNull(ListBoxName) Then
Exit Sub
End If
With Me.ListBoxName
For Each vItem In .ItemsSelected
If Not IsNull(vItem) Then
strSet = strSet & "," & .ItemData(vItem)
End If
Next
End With
strSQL = "DELETE FROM Carers WHERE Carer_ID IN (" & strSet & ")"
CurrentDb.Execute strSQL
ListBoxName.Requery
End Sub
私がこれを正しくしていることを願っています