Vba MS Access确定单击的列表框项目单击事件
我在MS Access中有一个列表框,希望找到获取在点击事件发生时选中/取消选中的列表项的最佳方法 这比在选定项之间循环要复杂一些,因为列表框中已经加载了一些选定项。我正在尝试查找在点击事件发生时受影响的单个项目 因此,如果用户在上面的示例中单击“Col2 How”,我将如何确定单击的是记录,或者,如果取消选择第一条记录,我需要知道。有什么线索吗Vba MS Access确定单击的列表框项目单击事件,vba,ms-access,listbox,Vba,Ms Access,Listbox,我在MS Access中有一个列表框,希望找到获取在点击事件发生时选中/取消选中的列表项的最佳方法 这比在选定项之间循环要复杂一些,因为列表框中已经加载了一些选定项。我正在尝试查找在点击事件发生时受影响的单个项目 因此,如果用户在上面的示例中单击“Col2 How”,我将如何确定单击的是记录,或者,如果取消选择第一条记录,我需要知道。有什么线索吗 我能想到的唯一一件事是使用内存中的对象来维护高亮显示行的列表,并在单击确定增量时追溯到所选项目?您可以使用AfterUpdate事件,例如列表框的名
我能想到的唯一一件事是使用内存中的对象来维护高亮显示行的列表,并在单击确定增量时追溯到所选项目?您可以使用AfterUpdate事件,例如列表框的名称是“aListbox”, 所以试试这个:
Private Sub aListBox_AfterUpdate()
Dim rowIndex As Integer
Dim rowValue As String
Dim rowIsSelected As Integer
Dim result As String
' ListBox row index clicked
rowIndex = Me.aListBox.ListIndex
' Row value clicked
rowValue = Me.aListBox.Column(0)
' If row is selected return value is -1, if unselected return value 0
rowIsSelected = Me.aListBox.Selected(rowIndex)
If (rowIsSelected = -1) Then
result = rowValue & " selected"
Else
result = rowValue & " unselected"
End If
MsgBox (result)
End Sub
你能想到的唯一一件事可能是非常接近。另一个visible=false的listbox和相同的rowsource可能更容易:您可以在listbox中使用一个循环,单击(对于可见的一个)来确定两者之间的差异,并更新不可见项中已更改项的状态。谢谢!,这真是太优雅了!我不明白为什么我想不出来!